Apabila mengendalikan input daripada konsol, adalah perkara biasa untuk membaca keseluruhan baris untuk pemprosesan selanjutnya. Walau bagaimanapun, watak baris baharu boleh memberikan cabaran menggunakan bufio.ReadString(). Untuk menangani perkara ini, ada yang mencadangkan untuk memangkas aksara baris baharu secara manual.
input, _ := src.ReadString('\n') inputFmt := input[0:len(input) - 2] + "" // Manual newline trimming
Adakah terdapat penyelesaian yang lebih elegan?
Untuk menjawab soalan ini, kita perlu menjelaskan dua konsep utama dalam Go:
Dengan mengambil kira konsep ini, pendekatan berikut memberikan yang lebih idiomatik dan cekap penyelesaian:
input, _ := src.ReadString('\n') inputFmt := input[:len(input) - 1]
Versi ini hanya memotong rentetan input sehingga aksara terakhir (dengan mengandaikan ia adalah aksara satu bait). Ini mengelakkan manipulasi rentetan yang tidak perlu dan memastikan pengekstrakan subrentetan yang cekap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Watak Baris Baharu dengan Cekap daripada Rentetan Baca dalam Pergi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!