使用strconv.ParseUint函数将字符串转换为无符号整数,并返回错误信息

使用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

后端开发标签