Apabila bekerja dengan fail, selalunya perlu membaca baris tertentu. Dalam Go, terdapat pelbagai pendekatan untuk mencapai perkara ini, tetapi salah satu yang paling mudah dan cekap ialah menggunakan jenis bufio.Scanner.
Fungsi ReadLine yang disediakan dalam soalan menggunakan bufio.Scanner untuk melelaran melalui baris sebuah fail. Walau bagaimanapun, beberapa pengoptimuman boleh dibuat untuk kecekapan yang dipertingkatkan.
Fungsi yang diubah suai di bawah memanfaatkan fakta bahawa bufio.Scanner mengembalikan kedua-dua baris sebagai rentetan dan ralat:
<code class="go">func ReadLine(r io.Reader, lineNum int) (line string, lastLine int, err error) { sc := bufio.NewScanner(r) for sc.Scan() { lastLine++ if lastLine == lineNum { return sc.Text(), lastLine, sc.Err() } } return line, lastLine, io.EOF }</code>
Pengoptimuman ini menghapuskan keperluan untuk panggilan tambahan ke sc.Err() apabila mengembalikan hasil, meningkatkan sedikit prestasi.
Fungsi ReadLine asal menyediakan cara yang mudah dan berkesan untuk membaca baris tertentu daripada fail dalam Go. Dengan pengoptimuman yang diterangkan di atas, ia menawarkan kecekapan yang dipertingkatkan dengan mengurangkan panggilan fungsi dan peruntukan memori yang tidak diperlukan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Baris Tertentu dengan Cekap daripada Fail dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!