Golang fmt.Sscanf()函数及示例
在Go语言中,fmt包提供了类似C语言中的printf和scanf函数的格式化IO功能。其中,fmt.Sscanf()函数可以将字符串格式化后解析到对应的变量中。本文将介绍fmt.Sscanf()函数的基本用法,以及如何在Go程序中使用此函数。
fmt.Sscanf()函数的基本用法
fmt.Sscanf()函数的基本用法如下:
func Sscanf(str string, format string, a ...interface{}) (n int, err error)
其中,str表示要解析的字符串;format表示格式;a表示要解析的数据。解析成功后,会将数据保存在指定的变量中,并返回成功解析的数据量n。如果解析错误,则返回一个error类型的错误。
下面是一个简单的例子,演示了如何使用fmt.Sscanf()函数:
package main
import (
"fmt"
)
func main() {
str := "Gopher is learning Go."
var a1 string
var a2 string
var a3 string
var a4 string
n, err := fmt.Sscanf(str, "%s %s %s %s", &a1, &a2, &a3, &a4)
if err != nil {
fmt.Println(err)
}
fmt.Println(n, a1, a2, a3, a4)
}
运行上面的代码,得到的输出为:
4 Gopher is learning Go.
代码中的fmt.Sscanf()函数将字符串按照空格分割,然后将每个单词存储到不同的变量中。
在Go程序中使用fmt.Sscanf()函数
在Go程序中使用fmt.Sscanf()函数的步骤如下:
- 定义一个字符串,包含要解析的数据。
-
定义需要存储解析结果的变量。
-
使用fmt.Sscanf()函数解析字符串。
下面是一个例子,演示了如何在Go程序中使用fmt.Sscanf()函数:
package main
import (
"fmt"
)
func main() {
data := "12,345"
var value1 int
var value2 int
_, err := fmt.Sscanf(data, "%d,%d", &value1, &value2)
if err == nil {
fmt.Printf("value1 = %d, value2 = %d\n", value1, value2)
} else {
fmt.Println(err)
}
}
运行上面的代码,得到的输出为:
value1 = 12, value2 = 345
代码中的fmt.Sscanf()函数将字符串按照逗号分割,然后将每个数字存储到不同的变量中。
总结
本文介绍了fmt.Sscanf()函数的基本用法,以及如何在Go程序中使用此函数。fmt.Sscanf()函数在解析字符串格式时非常方便实用,同时也能提高程序的性能。