Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Membaca Baris Tertentu dengan Cekap daripada Fail dalam Go?

Bagaimanakah Saya Boleh Membaca Baris Tertentu dengan Cekap daripada Fail dalam Go?

Linda Hamilton
Lepaskan: 2024-10-28 20:36:02
asal
907 orang telah melayarinya

How Can I Efficiently Read Specific Lines from a File in Go?

Membaca Baris Khusus daripada Fail dalam Go dengan Cekap

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

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!

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