Rumah >pembangunan bahagian belakang >Golang >ReadString vs. ReadLine in Go: Bilakah Anda Harus Menggunakan Setiap Satu untuk Input Teks?
reader.ReadString vs. ReadLine
In Go, bufio.Reader menyediakan dua kaedah untuk membaca teks daripada sumber input: ReadString dan ReadLine . Kaedah ini berbeza dalam cara mereka mengendalikan aksara baris baharu pada penghujung baris:
ReadString membaca rentetan sehingga ia menemui aksara pembatas yang ditentukan. Secara lalai, pembatas ialah n (baris baharu), yang bermaksud ia membaca keseluruhan baris teks. Walau bagaimanapun, ia tidak menanggalkan pembatas daripada rentetan yang dikembalikan. Dalam kod yang disebut dalam soalan:
text, _ := reader.ReadString('\n')
Pembolehubah teks akan mengandungi rentetan input termasuk aksara baris baharu. Oleh itu, apabila menyemak untuk "Alice" atau "Bob," aksara baris baharu pada penghujung input menyebabkan perbandingan gagal.
ReadLine membaca baris teks, tidak termasuk watak baris baharu. Ia mengembalikan kepingan bait yang mengandungi aksara dalam baris dan nilai ralat yang menunjukkan sebarang masalah yang dihadapi. Untuk menukar kepingan bait kepada rentetan, ia perlu dihantar seperti:
text, _, _ := reader.ReadLine()
Dengan menggunakan ReadLine dan bukannya ReadString, aksara baris baharu tidak disertakan dalam pembolehubah teks, menyelesaikan isu perbandingan yang salah .
Alternatif lain ialah memangkas aksara baris baharu secara manual daripada rentetan input menggunakan rentetan.Fungsi TrimSpace:
text = strings.TrimSpace(text)
Ini mengalih keluar sebarang aksara ruang kosong di hadapan dan di belakang, termasuk baris baharu, memastikan perbandingan yang bersih.
Atas ialah kandungan terperinci ReadString vs. ReadLine in Go: Bilakah Anda Harus Menggunakan Setiap Satu untuk Input Teks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!