Golang fmt.Sscanln()函数及示例
fmt.Sscanln() 函数是 Golang 中 fmt 包提供的一个字符串解析函数。它可以按照给定的格式读取并解析输入的文本数据,返回成功解析的变量个数以及出现的错误信息。
函数定义和参数介绍
函数定义如下:
func Sscanln(str string, a ...interface{}) (n int, err error)
参数解释:
- str:要解析的输入字符串。
- a:可变参数列表,在调用函数时需要提供需要解析的变量地址。
函数行为示例
下面是一个使用 fmt.Sscanln()
函数的例子:
package main
import (
"fmt"
)
func main() {
var name string
var age int
n, err := fmt.Sscanln("Tom 27", &name, &age) // 解析字符串 "Tom 27",将结果保存到变量 name 和 age 中
if err != nil {
fmt.Println(err) // 如果解析出错,则输出错误信息
} else {
fmt.Printf("%d values parsed: %s, %d", n, name, age) // 输出解析成功的变量值
}
}
运行后输出:
2 values parsed: Tom, 27
该示例从字符串 “Tom 27” 中提取了两个变量,一个字符串类型的变量名为 name,一个整型变量名为 age。注意,第一个变量是一个字符串,因此只解析了 Tom 这个单词,后面的 27 被当做第二个变量解析出来了。
函数行为进一步解析
- 在解析输入字符串时,函数会跳过任何遇到的空格或者制表符等空白字符。
- 解析出错时,函数会返回一个错误信息并且停止解析。
所支持数据类型
目前 fmt.Sscanln()
函数支持的数据类型如下:
- bool:true 或 false。
- int:十进制整数,可以是有符号或者无符号的。
- float:可以是十进制数或者指数形式。
- string:字符串,遇到空格会停止读取。
- []byte:字节数组。读取到空格停止。
与其他函数的类比
fmt.Sscanln() 函数 使用方式比较类似于 fmt.Scanf() 函数,但是需要多传入一些比变量的地址。
- fmt.Sscanln():以空格为分隔符,在输入字符串中顺序比对需输入的值,因为以空格为分隔符,this method forces Go programs to respect the spacing order as well as the input order.
- fmt.Scanf():类似 C 语言中的 scanf() 函数,可使用格式语句进行分隔。遇到空格会停止读取。
结论
通过本篇文章的阅读,了解了 Golang 中 fmt.Sscanln()
函数的使用方式以及所支持的数据类型。相比于其它牛逼哄哄的解析函数,该函数更加容易使用和理解,是值得程序员们掌握的一种技能!