Golang fmt.Sscanln()函数及示例

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() 函数的使用方式以及所支持的数据类型。相比于其它牛逼哄哄的解析函数,该函数更加容易使用和理解,是值得程序员们掌握的一种技能!

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程