fmt.Sscanf 関数を使用して文字列から書式設定されたデータを読み取り、それを変数に割り当てます
Go 言語では、fmt パッケージの Sscanf 関数を使用して文字列から非常に簡単に読み取ることができます。それを変数に代入します。この関数は、文字列内のデータを解析し、指定された形式に従ってデータを対応する型に変換し、変換された結果を指定された変数に格納できます。
fmt.Sscanf 関数の構文は次のとおりです:
func Sscanf(str string, format string, a ...interface{}) (n int, err error)
このうち、str は解析対象の文字列、format は指定された形式、a は割り当てられる変数リスト、n は割り当てに成功した変数の数、err はエラーの説明です。
以下では、fmt.Sscanf 関数についての理解を深めるために、いくつかのコード例を使用します。
例 1: 文字列
package main import ( "fmt" ) func main() { str := "I have 10 apples" var apples int n, err := fmt.Sscanf(str, "I have %d apples", &apples) if err != nil { fmt.Println("解析错误:", err) return } fmt.Println("解析成功,变量apples的值为:", apples) fmt.Println("成功赋值的变量个数:", n) }
内の整数を解析します。出力結果:
解析は成功しました。変数 apples の値は次のとおりです: 10
数値正常に割り当てられた変数の数: 1
上記の例では、fmt.Sscanf 関数を使用して文字列「I have 10 apples」を解析し、整数 10 を抽出し、それを変数 apples に割り当てました。
例 2: 文字列内の複数の値を解析する
package main import ( "fmt" ) func main() { str := "I am 20 years old" var name string var age int n, err := fmt.Sscanf(str, "I am %s years old", &name, &age) if err != nil { fmt.Println("解析错误:", err) return } fmt.Println("解析成功,变量name的值为:", name) fmt.Println("解析成功,变量age的值为:", age) fmt.Println("成功赋值的变量个数:", n) }
出力結果:
解析に成功しました。変数名の値は次のとおりです: 20
Parse成功しました、変数 年齢の値は次のとおりです: 0
正常に割り当てられた変数の数: 1
例 2 では、文字列「I am 20 year old」から「名前」と「年齢」を解析します。 " 価値。書式文字列に2つの変数を指定しましたが、「20」は整数型の「年齢」ではなく文字列型の「名前」として解析されるため、「年齢」の値は0になります。
概要:
fmt.Sscanf 関数を使用すると、文字列から指定された形式のデータを簡単に解析し、対応する変数に割り当てることができます。これは、構成ファイルやログ ファイルなど、文字列の書式設定が必要なシナリオで非常に役立ちます。ただし、解析エラーを避けるために、解析されたデータ型が変数の型と一致していることを確認する必要があることに注意してください。
以上がfmt.Sscanf 関数を使用して、文字列から書式設定されたデータを読み取り、変数に割り当てます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。