在 Golang 中有效決定行數
在 Golang 中處理檔案時,一項常見任務是確定它們包含的行數。雖然循環遍歷整個文件是一種簡單的方法,但效率可能很低。更有效的解決方案是使用 bytes.Count 函數。
bytes.Count 函數讓我們可以計算位元組切片中位元組序列的出現次數。在我們的例子中,我們想要計算文件位元組資料中換行符的數量 (n)。最佳化的行計數器如下所示:
func lineCounter(r io.Reader) (int, error) { buf := make([]byte, 32*1024) // Larger buffer for faster performance count := 0 lineSep := []byte{'\n'} for { c, err := r.Read(buf) count += bytes.Count(buf[:c], lineSep) switch { case err == io.EOF: return count, nil case err != nil: return count, err } } }
透過利用bytes.Count 函數並最佳化緩衝區大小,此方法最大限度地減少了與循環檔案相關的開銷,並提供了顯著的效能改進。
以上是如何有效率地統計Go檔案的行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!