在 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中文网其他相关文章!