首页 >后端开发 >Golang >如何在 Go 中高效地将一行读入字符串?

如何在 Go 中高效地将一行读入字符串?

DDD
DDD原创
2024-12-21 11:39:11685浏览

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn