首頁 > 後端開發 > Golang > 如何在 Go 中有效率地將一行讀入字串?

如何在 Go 中有效率地將一行讀入字串?

DDD
發布: 2024-12-21 11:39:11
原創
680 人瀏覽過

How Can I Efficiently Read a Line into a String in Go?

在Go 中高效讀取一行到字串

Go 標準函式庫提供了用於讀取輸入的低階函數,回傳字節數組而不是字串。為了方便使用,我們探索了一種直接從 readline 函數取得字串的替代方法。

自訂 Readln 函數

為了簡化 readline 操作,我們建立一個自訂Readln 函數從提供的檔案中讀取一行(不包含換行符) bufio.Reader:

func Readln(r *bufio.Reader) (string, error) {
  var (
    isPrefix bool = true
    err error = nil
    line, ln []byte
  )
  for isPrefix && err == nil {
    line, isPrefix, err = r.ReadLine()
    ln = append(ln, line...)
  }
  return string(ln), err
}
登入後複製

用法範例

使用Readln 函數,我們可以從檔案中讀取行並將其列印到標準輸出:

f, err := os.Open(fi)
if err != nil {
    fmt.Println("error opening file= ", err)
    os.Exit(1)
}
r := bufio.NewReader(f)
s, e := Readln(r)
for e == nil {
    fmt.Println(s)
    s, e = Readln(r)
}
登入後複製

這種方法避免了手動將位元組數組轉換為字串的需要,簡化了從readline 獲取字串的過程Go中的函數。

以上是如何在 Go 中有效率地將一行讀入字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板