第二个参数指定进制,它的值如果是 0
,进制则以第一个参数符号后的前缀决定,例如:"0b" 为 2,"0" 或 "0o" 为 8 , "0x" 为 16,否则为 10;
第三个参数指定返回结果必须符合整数类型的取值范围,它的值为 0、8、16、32 和 64,分别代表 int
、int8
、int16
、int32
和 int64
。
细心的读者朋友们可能已经发现 , 示例代码中 , 第 2 和 第 4 返回错误,原因是第二个参数指定的进制与第一个参数的数值不相符,超出取值范围 。
此外,函数 func ParseUint(s string, base int, bitSize int) (uint64, error)
与之类似,但是用于无符号整数 。
在实际项目开发中,十进制使用的最多,所以标准库 strconv
提供了函数 func Atoi(s string) (int, error)
,它的功能类似 ParseInt(s, 10, 0)
,需要注意的是,它的返回值类型是 int
(需要注意取值范围),而不是 int64
。
布尔 to 字符串
示例代码:
func main() { v := true s := strconv.FormatBool(v) fmt.Printf("%T, %vn", s, s)}
输出结果:
string, true
阅读上面这段代码 , 我们使用 func FormatBool(b bool) string
将布尔转换为字符串 。
浮点型 to 字符串
示例代码:
func main() { v := 3.1415926535 s32 := strconv.FormatFloat(v, 'E', -1, 32) fmt.Printf("%T, %vn", s32, s32) s64 := strconv.FormatFloat(v, 'E', -1, 64) fmt.Printf("%T, %vn", s64, s64) fmt64 := strconv.FormatFloat(v, 'g', -1, 64) fmt.Printf("%T, %vn", fmt64, fmt64)}
输出结果:
string, 3.1415927E+00string, 3.1415926535E+00string, 3.1415926535
阅读上面这段代码,我们使用 func FormatFloat(f float64, fmt byte, prec, bitSize int) string
将浮点型转换为字符串 。该函数包含 4 个参数,第一个参数是需要转换的浮点数;第二个参数是进制;第三个参数是精度,第四个参数是转换后值的取值范围 。
其中,第二个参数 b
代表二进制指数;e
或 E
代表十进制指数;f
代表无进制指数;g
或 G
代表指数大时 为 e
,反之为 f
;x
或 X
代表十六进制分数和二进制指数 。
第三个参数,精度 prec 控制由 'e','E','f','g','G','x' 和 'X' 格式打印的位数(不包括指数) 。对于 'e','E','f','x' 和 'X',它是小数点后的位数 。对于 'g' 和 'G' , 它是有效数字的最大数目(去掉后面的零) 。特殊精度 -1 使用所需的最小位数,以便 ParseFloat 精确返回 f
。
整型 to 字符串
示例代码:
func main() { v := int64(-42) s10 := strconv.FormatInt(v, 10) fmt.Printf("%T, %vn", s10, s10) s16 := strconv.FormatInt(v, 16) fmt.Printf("%T, %vn", s16, s16)}
输出结果:
string, -42string, -2a
阅读上面这段代码,我们使用 func FormatInt(i int64, base int) string
将整型转换为字符串 。需要注意的是,第二个参数的取值范围 2 <= base <= 36
。
此外,函数 func FormatUint(i uint64, base int) string
与之功能类型,区别是仅用于转换无类型整数 。
在实际项目开发中,十进制使用的最多,所以标准库 strconv
提供了函数 func Itoa(i int) string
,它的功能类似 FormatInt(int64(i), 10)
,需要注意的是,该函数入参的类型是 int
。
03
字符串操作
关于字符串操作 , 标准库 strings
提供了相关函数,我们介绍几个常用的函数 。
字符串中是否包含指定字符串
示例代码:
func main() { fmt.Println(strings.Contains("seafood", "foo")) fmt.Println(strings.Contains("seafood", "bar")) fmt.Println(strings.Contains("seafood", "")) fmt.Println(strings.Contains("", ""))}
推荐阅读
- 淘宝代付如何使用花呗支付功能,淘宝花呗逾期可以找朋友代付吗
- 玫瑰精油使用方法,玫瑰精油的使用方法是什么?
- 红花油怎么用,红花油去除吻痕怎么使用?
- ai镜像工具能如何使用
- 钉钉怎么使用悬浮窗,苹果手机钉钉怎么开悬浮窗
- 原神凯亚在哪个位置,原神为什么凯亚获得了不能使用
- 轮胎外侧蹭掉一块橡胶影响使用,轮胎侧面蹭掉一块橡胶能跑高速
- 血压计的使用方法,脉博士电子血压计的正确使用方法?
- ps能如何保存,如何把ps的图层保存下来下次使用
- 如何使用PS将图片变得清晰