Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mengeluarkan Watak Baris Baharu dengan Cekap daripada Rentetan Baca dalam Pergi?

Bagaimanakah Saya Boleh Mengeluarkan Watak Baris Baharu dengan Cekap daripada Rentetan Baca dalam Pergi?

Mary-Kate Olsen
Lepaskan: 2024-12-26 07:23:34
asal
690 orang telah melayarinya

How Can I Efficiently Remove the Newline Character from a String Read in Go?

Pengeluaran Substring yang Cekap dalam Go

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
Salin selepas log masuk

Adakah terdapat penyelesaian yang lebih elegan?

Untuk menjawab soalan ini, kita perlu menjelaskan dua konsep utama dalam Go:

  • Slices: Tidak seperti Tatasusunan gaya C, kepingan Go sememangnya menyimpan panjangnya dalam bait. Oleh itu, anda tidak perlu mengira panjang secara eksplisit sebelum menghiris.
  • Storan Rentetan: Rentetan Go tidak ditamatkan batal, jadi tidak perlu mengalih keluar bait nol semasa mengekstrak subrentetan.

Dengan mengambil kira konsep ini, pendekatan berikut memberikan yang lebih idiomatik dan cekap penyelesaian:

input, _ := src.ReadString('\n')
inputFmt := input[:len(input) - 1]
Salin selepas log masuk

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!

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