在 Go 中,標準函式庫為 readline 運算提供了低階原始函數,這些函數傳回位元組數組。有沒有更方便的方法從 readline 函數取得字串?
慣用解
Go 中 readline 到字串的慣用方法是利用 bufio。讀者結構。 Readln() 函數從輸入緩衝讀取器傳回一行(不含尾部換行符 n)。
import ( "bufio" "fmt" "os" ) 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 } func main() { 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) } }
此函數從檔案讀取行,剝離換行符 (n) 並將每行列印到控制台。
以上是如何在 Go 中高效地從文件中讀取一行作為字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!