📅  最后修改于: 2023-12-03 15:08:37.232000             🧑  作者: Mango
在 Golang 中,有许多字符串转换为整数类型的方法,包括使用 strconv
包和 fmt
包。
strconv.Atoi()
函数可以将字符串转换为整数类型,其函数原型如下:
func Atoi(s string) (int, error)
该函数接收一个字符串参数 s
,并返回转换后的整数类型值和一个 error
类型的错误信息(如果有的话)。
下面是一个例子:
package main
import (
"fmt"
"strconv"
)
func main() {
str := "123"
if num, err := strconv.Atoi(str); err == nil {
fmt.Printf("%d\n", num)
} else {
fmt.Println(err)
}
}
输出:
123
strconv.ParseInt()
函数可以将字符串转换为 int64
类型的整数,其函数原型如下:
func ParseInt(s string, base int, bitSize int) (int64, error)
该函数接收三个参数:需要转换的字符串 s
,转换进制 base
,和转换的结果类型 bitSize
。返回转换后的 int64
类型整数值和一个 error
类型的错误信息(如果有的话)。
下面是一个例子:
package main
import (
"fmt"
"strconv"
)
func main() {
str := "101101"
if num, err := strconv.ParseInt(str, 2, 64); err == nil {
fmt.Printf("%d\n", num)
} else {
fmt.Println(err)
}
}
输出:
45
注:
101101
的二进制转换为十进制等于 45,如果您使用其他进制转换,请相应修改进制参数 base
。bitSize
参数的取值范围为 0、8、16、32 和 64,分别表示返回值的类型为 uint、int8、int16、int32 和 int64。fmt 包也提供了一种将字符串转换为整数类型的方法,即使用 fmt.Sscanf()
函数,其函数原型如下:
func Sscanf(str string, format string, a ...interface{}) (n int, err error)
该函数接收两个参数:需要转换的字符串 str
和格式化字符串 format
,并将结果存储到 a
参数中,返回成功处理的参数个数和一个 error
类型的错误信息(如果有的话)。
下面是一个例子:
package main
import (
"fmt"
)
func main() {
str := "567"
var num int
_, err := fmt.Sscanf(str, "%d", &num)
if err == nil {
fmt.Printf("%d\n", num)
} else {
fmt.Println(err)
}
}
输出:
567
注:
%d
表示需要转换的类型为十进制整数。%x
(十六进制)、%o
(八进制)、%b
(二进制)等。以上就是在 Golang 中将字符串转换为整数类型的几种方法,根据你的具体需要选择适合你当前需求的方法即可。