📅  最后修改于: 2023-12-03 15:01:01.598000             🧑  作者: Mango
在 Golang 中,fmt 包提供了许多函数用于字符串和数据类型之间的转换。其中一个非常有用的函数是 fmt.Sscan()。该函数可以将一个字符串解析为多个值,并将它们存储到提供的变量中。在本文中,我们将探讨 fmt.Sscan() 函数的用法和一些示例,帮助你更好地理解它是如何工作的。
下面是 fmt.Sscan() 的函数定义:
func Sscan(str string, a ...interface{}) (n int, err error)
下面是一个简单的示例,演示了如何使用 fmt.Sscan() 函数将字符串解析为多个值:
package main
import (
"fmt"
)
func main() {
var a, b, c int
str := "10 20 30"
n, err := fmt.Sscan(str, &a, &b, &c)
if err != nil {
fmt.Println(err)
}
fmt.Println("Parsed successfully:", n, "values.")
fmt.Println("a =", a)
fmt.Println("b =", b)
fmt.Println("c =", c)
}
输出:
Parsed successfully: 3 values.
a = 10
b = 20
c = 30
在上面的示例中,我们将字符串 "10 20 30" 解析为三个整数,并将它们存储到变量 a、b 和 c 中。
默认情况下,fmt.Sscan() 函数使用空格作为分隔符。但是,在某些情况下,字符串可能包含不同的分隔符。在这种情况下,你可以使用 fmt.Scanln() 函数的第一个参数来指定分隔符。下面是一个示例:
package main
import (
"fmt"
"strings"
)
func main() {
var a, b, c int
str := "10,20,30"
r := strings.NewReader(str)
n, err := fmt.Fscanf(r, "%d,%d,%d", &a, &b, &c)
if err != nil {
fmt.Println(err)
}
fmt.Println("Parsed successfully:", n, "values.")
fmt.Println("a =", a)
fmt.Println("b =", b)
fmt.Println("c =", c)
}
输出:
Parsed successfully: 3 values.
a = 10
b = 20
c = 30
在上面的示例中,我们使用 fmt.Fscanf() 函数来读取一个包含逗号分隔符的字符串,并将其存储为三个整数。注意,这里我们使用了 strings.NewReader() 函数来创建一个 io.Reader 对象,作为 fmt.Fscanf() 的第一个参数。
fmt.Sscan() 函数是一个非常有用的函数,可以将一个字符串解析为多个值,并将它们存储到提供的变量中。在使用该函数时,你需要指定要解析的字符串和要存储结果的变量列表。如果你需要指定分隔符,可以使用 fmt.Fscanf() 函数。希望本文能对你的 Golang 编程工作有所帮助!