使用strconv.ParseUint函数将字符串转换为无符号整数
在Go语言中,strconv包中提供了ParseUint函数用于将字符串转换为无符号整数。以下是该函数的函数原型:
func ParseUint(s string, base int, bitSize int) (uint64, error)
参数说明
s:要转换的字符串
base:字符串的进制(0、2、8、10或16),如果设为0,则根据s的前缀来判断进制
bitSize:要转换的无符号整数类型的位数(8、16、32或64)
返回值
uint64:转换后的无符号整数
error:转换时可能出现的错误
示例代码
以下示例代码演示了如何使用ParseUint函数将字符串转换为无符号整数:
import (
"fmt"
"strconv"
)
func main() {
s := "123"
n, err := strconv.ParseUint(s, 10, 64)
if err != nil {
fmt.Println("转换出错:", err)
} else {
fmt.Printf("%T %d\n", n, n)
}
}
运行结果:
uint64 123
错误处理
在使用ParseUint函数进行字符串转换时,可能会出现以下两种错误:
转换的字符串不能表示一个数字
转换的字符串表示的数字超出了给定的无符号整数类型的范围
如果出现错误,ParseUint函数会返回一个错误的实例对象。
完整示例代码
以下是包含错误处理的完整示例代码:
import (
"fmt"
"strconv"
)
func main() {
s1 := "123"
s2 := "abc"
s3 := "18446744073709551615"
s4 := "18446744073709551616"
n1, err1 := strconv.ParseUint(s1, 10, 64)
checkError(err1)
fmt.Printf("%T %d\n", n1, n1)
_, err2 := strconv.ParseUint(s2, 10, 64)
checkError(err2)
n3, err3 := strconv.ParseUint(s3, 10, 64)
checkError(err3)
fmt.Printf("%T %d\n", n3, n3)
_, err4 := strconv.ParseUint(s4, 10, 64)
checkError(err4)
}
func checkError(err error) {
if err != nil {
fmt.Println("转换出错:", err)
}
}
运行结果:
uint64 123
uint64 18446744073709551615
转换出错: strconv.ParseUint: parsing "18446744073709551616": value out of range