📜  Golang 中的 fmt.Sscanf()函数示例(1)

📅  最后修改于: 2023-12-03 15:31:01.437000             🧑  作者: Mango

Golang 中的 fmt.Sscanf() 函数可以将字符串解析为具有给定格式的值。它类似于 fmt.Sprintf() 函数,但是它可以从字符串中提取值,而不是将值格式化为字符串。

语法
func Sscanf(str string, format string, args ...interface{}) (n int, err error)
  • str:要解析的字符串。
  • format:格式字符串,与 fmt.Sprintf() 函数的格式字符串类似。
  • args...:输出参数,可以是任何类型的空接口指针。传递给此函数的参数必须与格式字符串中指定的格式相对应。
示例
package main

import (
	"fmt"
)

func main() {
	var a, b int
	var c string
	input := "10 20 hello"

	num, err := fmt.Sscanf(input, "%d %d %s", &a, &b, &c)
	if err != nil {
		fmt.Println(err)
	}

	fmt.Println(num, a, b, c)
}

该程序的输出为:

3 10 20 hello

在这个例子中,我们定义了三个变量:a(一个整数),b(一个整数)和 c(一个字符串),然后定义了一个字符串 input。我们使用 fmt.Sscanf() 函数将字符串 input 解析为具有给定格式的值。在这种情况下,我们将字符串 input 解析为三个变量:a、b 和 c。

我们使用格式字符串 "%d %d %s",其中 %d 表示读取一个整数,%s 表示读取一个字符串。

num, err := fmt.Sscanf(input, "%d %d %s", &a, &b, &c)

在上面的行中,我们使用 fmt.Sscanf() 函数解析字符串 input。我们将输入字符串和格式字符串传递给该函数,并将需要解析的变量的指针作为其参数 args。%d 和 %s 格式符分别指定了要读取的变量的类型。

最后,fmt.Sscanf() 函数返回解析的参数数量 num 和任何错误。在我们的示例中,fmt.Sscanf() 函数解析了三个参数,所以 num 的值为 3。

使用 fmt.Sscanf() 函数可以将输入数据解析为可用的数据类型,在编写具有输入的 Golang 程序时非常有用。