ホームページ >バックエンド開発 >Golang >Go の `Readln` 関数はどのようにして慣用的な行の読み取りを簡素化できるのでしょうか?

Go の `Readln` 関数はどのようにして慣用的な行の読み取りを簡素化できるのでしょうか?

DDD
DDDオリジナル
2024-12-05 17:13:17693ブラウズ

How Can Go's `Readln` Function Simplify Idiomatic Line Reading?

Readln を使用した Go での慣用的な行読み取り

Go で入出力操作を行う場合、多くの場合、テキスト行を文字列として読み取る必要があります。ただし、標準ライブラリの readline 関数は主にバイト配列を返します。

便利な解決策: Readln 関数

Readln 関数は、バイト配列を readline から文字列に変換する便利な方法を提供します。その仕組みは次のとおりです:

<br>import (</p>
<pre class="brush:php;toolbar:false">"bufio"
"fmt"
"os"

)

// Readln は 1 行を返します (末尾の n なし)
// 入力バッファーリーダーから。
// エラーがある場合はエラーが返されます。 the
// バッファされたリーダー.
func Readln(r *bufio.Reader) (string, error) {
var (

isPrefix bool = true
err error = nil
line, ln []byte

)

for isPrefix && エラー == nil {

line, isPrefix, err = r.ReadLine()
ln = append(ln, line...)

}

return string(ln), err
}

func main() {
f, err := os.Open ("filename.txt")
if err != nil {

fmt.Println("error opening file= ", err)
os.Exit(1)

}

r := bufio.NewReader(f)

行、err := Readln(r);エラー == nil; line、err = Readln(r) {

fmt.Println(line)

}

if err != io.EOF {

fmt.Println("error reading file= ", err)
os.Exit(1)

}
}

例使用法

main() 関数はファイルを開き、そこからバッファリングされたリーダーを作成し、Readln 関数を使用してファイル内の各行を反復処理します。 Readln 関数は、文字列としての行とエラー値の両方を返します。プログラムは、ファイルの終わりに達するかエラーが発生するまで行の読み取りを続けます。

このアプローチにより、Go での行の読み取りが簡素化され、入力から文字列を取得するためのより慣用的でユーザーフレンドリーな方法が提供されます。

以上がGo の `Readln` 関数はどのようにして慣用的な行の読み取りを簡素化できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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