Rumah > pembangunan bahagian belakang > Golang > Mengapa `reader.ReadString` tidak mengalih keluar Pembatas Awal?

Mengapa `reader.ReadString` tidak mengalih keluar Pembatas Awal?

Patricia Arquette
Lepaskan: 2024-12-24 05:31:14
asal
801 orang telah melayarinya

Why Doesn't `reader.ReadString` Remove the Initial Delimiter?

pembaca.ReadString Tidak Menanggalkan Pembatas Awal

Dalam usaha untuk mencipta program yang menyambut pengguna bernama Alice atau Bob, seorang pembangun menghadapi isu di mana nama yang sah pun mencetuskan respons yang tidak diingini. Program ini tersilap menafikan kemasukan kepada kedua-dua Alice dan Bob.

Masalahnya

Isu ini berpunca daripada penggunaan pembaca.ReadString('n') dalam program. Fungsi ini mendapatkan semula aksara sehingga aksara baris baharu ditemui. Walau bagaimanapun, ia tidak mengalih keluar pembatas secara automatik daripada rentetan yang dikembalikan, membawa kepada kemasukan baris baharu tambahan dalam input pengguna.

Penyelesaian

Untuk menyelesaikan isu ini , terdapat dua pendekatan yang mungkin:

1. Potong Garis Baharu

Gunakan fungsi rentetan.TrimSpace untuk mengalih keluar sebarang ruang kosong di hadapan atau di belakang daripada rentetan input sebelum menilainya. Ini secara berkesan mengalih keluar watak baris baharu yang menyebabkan masalah.

if aliceOrBob(strings.TrimSpace(text)) {
    fmt.Printf("Hello, ", text)
}
Salin selepas log masuk

2. Gunakan ReadLine Daripada ReadString

Sebagai alternatif, fungsi ReadLine boleh digunakan dan bukannya ReadString. ReadLine mendapatkan semula baris teks tanpa memasukkan aksara baris baharu dalam rentetan yang dikembalikan.

text, _, _ := reader.ReadLine()
if aliceOrBob(string(text)) {
    fmt.Printf("Hello, ", text)
}
Salin selepas log masuk

Penjelasan

Sebab untuk menggunakan rentetan(teks) dengan ReadLine ialah kerana ReadLine mengembalikan kepingan bait, manakala aliceOrBob memerlukan hujah rentetan.

Atas ialah kandungan terperinci Mengapa `reader.ReadString` tidak mengalih keluar Pembatas Awal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan