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

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

DDD
リリース: 2024-12-05 17:13:17
オリジナル
703 人が閲覧しました

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

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

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

便利な解決策: Readln 関数

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

<br>import (</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート