Golang 的 strconv 包的使用
strconv 包是 go 中做类型转换的包,可以做各种类型与字符串类型的转换。
布尔值和字符串的转换
使用 FormatBool 将布尔值转化为字符串
true 转化为字符串 true,false 转化为字符串 false
package main import ( "fmt" "strconv" ) func main() { t := true f := false fmt.Println(strconv.FormatBool(t)) fmt.Println(strconv.FormatBool(f)) }
使用 ParseBool 将字符串转化为布尔值
对字符串 1,t, T, TRUE, true, True 六种值转化为布尔值 true,对字符串 0,f,F, False,false,FALSE 六种值转化为布尔值 false,其他值都会返回一个错误
package main import ( "fmt" "strconv" ) func main() { fmt.Println(strconv.ParseBool("1")) fmt.Println(strconv.ParseBool("t")) fmt.Println(strconv.ParseBool("T")) fmt.Println(strconv.ParseBool("TRUE")) fmt.Println(strconv.ParseBool("True")) fmt.Println(strconv.ParseBool("true")) fmt.Println(strconv.ParseBool("TrUe")) }
整数和字符串的转换
将数字转化为字符串
FotmatInt 方法有两个参数
func FormatInt(i int64, base int) string
第二个为基数。
package main import ( "fmt" "strconv" ) func main() { v := int64(12) fmt.Println(strconv.FormatInt(v, 10)) fmt.Println(strconv.FormatInt(v, 12)) }
除此之外,还有将无符号的整数转化为字符串的 FormatUnit 方法,同时为了方便常用的 10 进制转换,提供了 Itoa 方法
package main import ("fmt""strconv") func main() { v := int64(98) fmt.Println(strconv.Itoa(98)) // 等价于 fmt.Println(strconv.FormatInt(v, 10)) }
将字符串转化为数字
ParseInt 有三个参数:
func ParseInt(s string, base int, bitSize int) (i int64, err error)
base 表示进位制(2 到 36),如果 base 为 0,则根据字符串前缀判断(前缀:0x表示16进制;0表示8进制;否则是10 进制),即按照什么进制,来解析给定的整数字符串;参数bitSize 表示的是整数取值范围,或者说整数的具体类型。取值 0、8、16、32 和 64 分别代表 int、int8、int16、int32 和 int64。
如果字符串中包含不是数字,则会转换失败返回一个错误:
package main import ( "fmt" "strconv" ) func main() { v := "989898" v2 := "9898abc" fmt.Println(strconv.ParseInt(v, 10, 32)) fmt.Println(strconv.ParseInt(v2, 10, 32)) }
除此之外,还有将字符串转化为无符号的整数的 ParseUnit 方法,同时为了方便常用的 10 进制转换,提供了 Atoi 方法
package main import ( "fmt" "strconv" ) func main() { v := "98" fmt.Println(strconv.Atoi(v)) // 等价于 fmt.Println(strconv.ParseInt(v, 10, 0)) }
浮点数和字符串的转化
将浮点数转化为字符串
func FormatFloat(f float64, fmt byte, prec, bitSize int) string
f 为需要转换的 float64 类型的变量,fmt 表示使用 f 表示不使用指数的形式,prec 表示保留几位小数,bitSize 如果为 32,表示是 float32 类型,如果是 64,表示是 float64 类型。
package main import ( "strconv" "fmt" ) func main() { var num float64 = 3.24 fmt.Println(strconv.FormatFloat(num, 'f', 10, 64 )) }
将字符串转化为浮点数
使用 ParseFloat
func ParseFloat(s string, bitSize int) (float64, error)
其中 bitSize 表示转化为 float32 还是 float64:
package main import ( "fmt" "strconv" ) func main() { var s = "3.24" fmt.Println(strconv.ParseFloat(s, 64)) }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论