在Go语言中,strconv
包提供了字符串与其他基本数据类型之间的转换功能,特别是字符串与数字(整数、浮点数等)之间的转换。以下是strconv
包中一些常用的字符串与数字相互转换的函数及其简要说明:
字符串转整数
strconv.Atoi(s string) (int, error)
:尝试将字符串s
转换为十进制整数。如果转换成功,则返回转换后的整数和nil
错误;如果转换失败,则返回0
和一个非nil
的错误。strconv.ParseInt(s string, base int, bitSize int) (i int64, err error)
:将字符串s
按照指定的进制base
(范围2到36)解析为整数,并根据bitSize
(0、8、16、32、64)返回合适大小的整数(int64
类型)。如果bitSize
是0,则根据转换的数值大小自动选择合适的类型。strconv.ParseUint(s string, base int, bitSize int) (n uint64, err error)
:功能与ParseInt
类似,但返回的是无符号整数(uint64
类型)。
整数转字符串
strconv.Itoa(i int) string
:将整数i
转换为字符串表示。这个函数只支持int
类型的转换,对于其他整数类型(如int64
),需要使用FormatInt
函数。strconv.FormatInt(i int64, base int) string
:将整数i
以指定的进制base
(范围2到36)转换为字符串。这个函数适用于所有整数类型,通过传递int64
类型的参数可以覆盖int
、int32
、int16
、int8
等类型的转换。strconv.FormatUint(i uint64, base int) string
:与FormatInt
类似,但用于无符号整数(uint64
)的转换。
字符串转浮点数
strconv.ParseFloat(s string, bitSize int) (f float64, err error)
:将字符串s
转换为浮点数。bitSize
指定了期望的精度(32或64),但它实际上只是指定了返回的浮点数类型(float32
或float64
)。函数总是返回float64
类型的值,如果bitSize
是32,则调用者需要将其转换为float32
。
浮点数转字符串
strconv.FormatFloat(f float64, fmt byte, prec, bitSize int) string
:将浮点数f
转换为字符串。fmt
参数指定了格式化类型(如'f'
表示固定小数点数表示,'e'
表示科学计数法),prec
是精度(小数点后的位数),bitSize
指定了原始浮点数的类型(32或64),虽然它主要用于确定f
是否应该被四舍五入到其原始类型的精度。
这些函数在处理文本数据和数字数据之间的转换时非常有用,特别是在需要解析用户输入或生成文本输出时。