go语言内置包之strconv
简介
go语言的内置包sreconv
实现了基本数据类型和字符串之间的相互转换。
常用函数
Atoi()
将字符串类型的整数转换为int类型。函数原型为:
1 | func Atoi(s string) (int, error) {} |
如果传入的参数无法转换为int类型。就会返回错误。
1 | package main |
执行结果:
1 | 类型:int 值:5201314 |
Itoa()
将int类型数据转化为对应的字符串表示。函数原型为:
1 | func Itoa(i int) string {} |
1 | package main |
parse系列
parse系列函数用于转换字符串为给定类型的值。
ParseBool()
1 | func ParseBool(str string) (bool, error) {} |
返回字符串表示的bool值,但是只接收1、0、false、true、False、True、t、T、F、f、TRUE、FALSE
,否则返回错误。
1 | package main |
执行结果:
1 | 类型:bool 值:true |
ParseFloat()
解析一个浮点数表示的字符串。函数原型为:
1 | func ParseFloat(s string, bitSize int) (float64, error) {} |
bitsize
表示期望的接受类型。32代表float32
,64代表float64
。
1 | package main |
执行结果:
1 | 类型:float64 值:1 |
ParseInt()
解析字符串表示的整数值,接收正负号,函数原型为:
1 | func ParseInt(s string, base int, bitSize int) (i int64, err error) {} |
base
表示指定进制,如果base为0,则会从字符串前缀判断。ox
是十六进制,o
是八进制。否则是十进制。
1 | package main |
执行结果:
1 | 类型:int64 值:1 |
ParseUnit()
与ParseInt
类似,但是不接受正负号,用于无符号整型。函数原型为:
1 | func ParseUint(s string, base int, bitSize int) (n uint64, err error) {} |
format系列
与Parse
系列函数相反。将给定的数据类型的值转为字符串。
FormatBool()
将布尔值格式化为对应的字符串,函数原型为:
1 | func FormatBool(b bool) string {} |
返回值为true
或者false
1 | package main |
执行结果:
1 | true |
FormatInt()
将数字格式化为对应的字符串,支持指定进制,函数原型为:
1 | func FormatInt(i int64, base int) string {} |
base
必须在2到36之间,结果中会使用小写字母’a’到’z’表示大于10的数字。
1 | package main |
执行结果:
1 | 类型:string 值:"1010" |
FormatUnit()
是FormatInt
的无符号整数版本,函数原型为:
1 | func FormatUint(i uint64, base int) string {} |
FormatFloat()
将浮点型的数字转换为对应的字符串,函数原型为:
1 | func FormatFloat(f float64, fmt byte, prec, bitSize int) string {} |
bitSize
表示f的来源类型(32:float32、64:float64),会据此进行舍入。
fmt
表示格式:f
(-ddd.dddd)、b
(-ddddp±ddd,指数为二进制)、e
(-d.dddde±dd,十进制指数)、E
(-d.ddddE±dd,十进制指数)、g
指数很大时用’e’格式,否则f
格式)、G
(指数很大时用E
式,否则f
格式)。
prec
控制精度(排除指数部分):对f、e、E
,它表示小数点后的数字个数;对g、G
,它控制总的数字个数。如果prec
为-1,则代表使用最少数量的、但又必需的数字来表示f。
1 | package main |