ホームページ >バックエンド開発 >Golang >Go で効率的に行を文字列に読み込むにはどうすればよいですか?

Go で効率的に行を文字列に読み込むにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-21 11:39:11729ブラウズ

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

Go で行を文字列に効率的に読み取る

Go の標準ライブラリは、入力を読み取るための低レベル関数を提供し、代わりにバイト配列を返します。文字列。使いやすくするために、readline 関数から直接文字列を取得する別のアプローチを検討します。

カスタム Readln 関数

readline 操作を簡素化するために、カスタム Readln 関数を作成します。提供されたファイルから単一行 (改行文字を除く) を読み取る 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 関数を使用すると、ファイルから行を読み取り、stdout に出力できます:

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)
}

このアプローチにより、バイト配列を文字列に手動で変換する必要がなくなり、プロセスが合理化されます。 Go の readline 関数から文字列を取得します。

以上がGo で効率的に行を文字列に読み込むにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。