fmt.Sscanf 関数を使用して、文字列から書式設定されたデータを読み取り、それを複数の変数に割り当てます
Go 言語では、fmt.Sscanf 関数を使用すると、文字列から指定された形式に従うことができます。データを取得し、読み取ったデータを対応する変数に代入します。これにより、文字列データを処理する際に非常に便利になります。この記事では、fmt.Sscanf 関数の使用方法を紹介し、読者がよりよく理解できるようにいくつかのサンプル コードを提供します。
まず、fmt.Sscanf 関数の基本的な使い方を見てみましょう。この関数の定義は次のとおりです。
func Sscanf(str string, format string, a ...interface{}) (n int, err error)
この関数では、str は解析される文字列、format は指定された形式、a は渡される変数です。この関数は、正常に解析されたパラメータの数 n と解析プロセス中のエラー err を返します。
ここで、「Tom 20 180.12」という文字列があるとします。そこから名前、年齢、身長を抽出し、それぞれ対応する変数に割り当てます。コードは次のとおりです:
package main import ( "fmt" ) func main() { str := "Tom 20 180.12" var name string var age int var height float64 n, err := fmt.Sscanf(str, "%s %d %f", &name, &age, &height) if err != nil { fmt.Printf("解析错误:%v ", err) } fmt.Printf("成功解析的参数数目:%d ", n) fmt.Printf("姓名:%s ", name) fmt.Printf("年龄:%d ", age) fmt.Printf("身高:%.2f ", height) }
実行結果は次のとおりです:
成功解析的参数数目:3 姓名:Tom 年龄:20 身高:180.12
コードでは、指定された形式文字列 "%s %d %f" 名までの最初の文字列を読み取ります。変数に 2 番目の整数を age 変数に読み込み、3 番目の浮動小数点数を height 変数に読み込みます。 fmt.Printf 関数を使用すると、対応する結果を出力できます。
日付などのより複雑なデータを抽出したい場合は、いくつかの特殊文字を使用できます。一般的に使用されるフォーマット文字の一部を次に示します。
コード例:
package main import ( "fmt" ) func main() { str := "2022-06-30" var year, month, day int n, err := fmt.Sscanf(str, "%d-%d-%d", &year, &month, &day) if err != nil { fmt.Printf("解析错误:%v ", err) } fmt.Printf("成功解析的参数数目:%d ", n) fmt.Printf("年:%d ", year) fmt.Printf("月:%d ", month) fmt.Printf("日:%d ", day) }
実行結果は次のとおりです:
成功解析的参数数目:3 年:2022 月:6 日:30
fmt.Sscanf 関数を使用すると、文字列から簡単に読み取ることができます。それを複数の変数に代入します。このような機能は文字列データを操作する場合に非常に便利で、手動で文字列を解析する手間を省きます。同時に、指定されたフォーマット制御文字列を使用して、必要なデータをより柔軟に抽出することもできます。この記事のサンプル コードが、読者がこの関数をよりよく理解し、使用するのに役立つことを願っています。
以上がfmt.Sscanf 関数を使用して、文字列から書式設定されたデータを読み取り、それを複数の変数に割り当てます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。