fmt.Fscanf 関数を使用して、文字列から書式設定されたデータを読み取り、指定された区切り文字に達するまでそれを変数に割り当てます。
Go 言語の fmt パッケージには、一連の入力関数と出力関数があり、入力をフォーマットするための関数 fmt.Fscanf が含まれます。この関数を使用すると、文字列から指定した形式のデータを読み取り、対応する変数に代入することができます。
まず、簡単な例を見てみましょう。
package main import ( "fmt" "strings" ) func main() { str := "42 3.14 Go" var num int var pi float64 var lang string _, err := fmt.Fscanf(strings.NewReader(str), "%d %f %s", &num, &pi, &lang) if err != nil { fmt.Printf("格式化输入错误:%s ", err) return } fmt.Printf("num: %d ", num) fmt.Printf("pi: %f ", pi) fmt.Printf("lang: %s ", lang) }
上記のコードでは、整数、浮動小数点数、および文字列をスペースで区切って含む文字列 str を定義します。
次に、fmt.Fscanf 関数を使用して、この文字列から指定された形式でデータを読み取り、結果を対応する変数に割り当てます。
この例では、読み取りデータを受け取るために、それぞれ num、pi、lang の 3 つの変数を定義しました。 fmt.Fscanf がメモリ アドレス (& 演算子を使用) をパラメータとして渡すことで、読み取った値を対応する変数に格納できるようにします。
%フォーマット文字列は、読み取ることが予想されるデータ型を指定します。この例では、%d は整数、%f は浮動小数点数、%s は文字列を表します。
strings.NewReader 関数を使用して文字列 str を io.Reader インターフェイスの実装にラップし、fmt.Fscanf 関数に渡せるようにしていることに注意してください。これが行われるのは、fmt.Fscanf 関数が io.Reader 型のパラメーターを必要とし、このインターフェイスを実装する任意の型からデータを読み取ることができるためです。
最後に、err 変数をチェックして、読み取りが成功したかどうかを確認します。 err が nil でない場合、フォーマットされた入力エラーが発生しています。
すべてがOKであれば、読み取った値を出力できます。
上記のコードでは、fmt.Printf 関数を使用して、num、pi、lang の値を出力します。これらの値は、必要に応じて処理できます。
要約すると、fmt.Fscanf 関数を使用すると、文字列から書式設定されたデータを簡単に読み取り、対応する変数に割り当てることができます。これは、ユーザー入力の処理、ファイル データの解析などのシナリオに役立ちます。異なるフォーマット文字列を使用して、異なるデータ型を指定できます。読み取りプロセス中に指定された区切り文字に遭遇すると、読み取りが停止され、残りのデータが入力ストリームに残されることに注意してください。
以上がfmt.Fscanf 関数を使用して、文字列から書式設定されたデータを読み取り、指定された区切り文字に達するまでそれを変数に割り当てます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。