Menghuraikan Rentetan Dipisahkan Oleh Ruang Menggunakan fmt.Scanln
Apabila cuba membaca rentetan daripada input pengguna yang mengandungi berbilang perkataan yang dipisahkan oleh ruang, fmt.Scanln boleh mengembalikan perkataan pertama sahaja. Untuk menangani isu ini:
Memahami fmt.Scanln
fmt.Scanln beroperasi sama seperti fmt.Scan, tetapi menamatkan pengimbasan apabila menemui aksara baris baharu. Watak baris baharu mesti mengikut item terakhir atau mesti ada penunjuk EOF (End-of-File).
Menggunakan Scanln untuk Membaca Rentetan Dipisahkan Ruang
Untuk berjaya membaca rentetan yang dipisahkan ruang, nyatakan berbilang pembolehubah dalam fmt. Panggilan imbasan:
<code class="go">var s1 string var s2 string fmt.Scanln(&s1, &s2)</code>
Pendekatan ini memberikan perkataan pertama kepada s1 dan yang kedua kepada s2.
Alternatif Pendekatan Menggunakan bufio.Scanner
Pilihan lain ialah menggunakan bufio.Scanner:
<code class="go">scanner := bufio.NewScanner(os.Stdin) for scanner.Scan() { s := scanner.Text() fmt.Println(s) }</code>
Di sini, pengimbas menggelung melalui input standard dan mencetak setiap baris input.
Atas ialah kandungan terperinci Bagaimana untuk Membaca Rentetan yang Dipisahkan Ruang daripada Input Pengguna dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!