-
博文分类专栏
- Jquery基础教程
-
- 文章:(15)篇
- 阅读:44697
- shell命令
-
- 文章:(42)篇
- 阅读:148473
- Git教程
-
- 文章:(36)篇
- 阅读:226766
- leetCode刷题
-
- 文章:(76)篇
- 阅读:117144
-
go中类型转换包strconv的使用2018-03-18 17:52 阅读(6017) 评论(0)
go语言是一种强类型的语言,不像PHP,各种类型可以相互赋值,那么针对go就要搞好类型转换,strconv包中封装了很多函数,来完成这些事。
一、布尔与字符相互转换
1、布尔转为字符串,使用formatBool()方法,如下
var b bool = true //将布尔转为字符串 var bstr string = strconv.FormatBool(b)
备注:由于bool类型,只有true和false两个值,所以formatBool,也只能接受这两个值。
2、字符串转为布尔,使用ParseBool()方法,如下
var str string = "false" b, err := strconv.ParseBool(str) if err != nil { fmt.Print(str+"不是bool字符串") }
备注:ParseBool()函数并不是能够将所有的字符串都转为bool类型,只能抢如下12中类型进行转为,其他的字符串将会转换失败。
转为true的字符串:1, t, T, TRUE, true, True;
转为false的字符串:0, f, F, FALSE, false, False
二、整数与字符相互转换
1、整数转为字符串,使用FormatInt()和FormatUint()方法,如下
func FormatInt(i int64, base int) string //针对有符号的 func FormatUint(i uint64, base int) string //针对无符号的
参数说明:i代表要转为的整数int64是有符号的,uint是无符号的;base代表当前整数的进制位数,取值范围 2 <= base <= 36
案例如下:
var age int64 = 18 var str string = strconv.FormatInt(age, 2) //10010 var str2 string = strconv.FormatInt(age, 10) //18
2、字符串转整数,使用ParseInt()和ParseUint()方法,如下
func ParseInt(s string, base int, bitSize int) (i int64, err error)//针对有符号的 func ParseUint(s string, base int, bitSize int) (uint64, error) //针对无符号的
参数说明:s代表要转换的整数字符串;base 表示进位制(2 到 36),如果 base 为 0,则根据字符串前缀判断(前缀:0x表示16进制;0表示8进制;否则是10 进制),即按照什么进制,来解析给定的整数字符串;参数bitSize 表示的是整数取值范围,或者说整数的具体类型。取值 0、8、16、32 和 64 分别代表 int、int8、int16、int32 和 int64。
案例如下:
var ageStr string = "129" age, err := strconv.ParseInt(ageStr, 10, 8) if err != nil { fmt.Println(ageStr+"不是整形字符串") os.Exit(0) } fmt.Println(age)
因为129转为整数,超过int8(bitSize为8,对应着int8)的取值范围,故转换失败,执行结果如下:
为了整数和字符串转换方便,strconv包中,还提供了一些函数:
func Itoa(i int) string //将整数转换为十进制字符串形式 func Atoi(s string) (int, error) //将字符串转换为十进制整数
三、浮点数与字符相互转换
浮点数与字符串相互转换函数如下:
func ParseFloat(s string, bitSize int) (f float64, err error) func FormatFloat(f float64, fmt byte, prec, bitSize int) string
如下将浮点数字符串,转为浮点数
var moneyStr string = "12.56" money, err := strconv.ParseFloat(moneyStr, 0) if err != nil { fmt.Println(moneyStr+"不是浮点数字符串;错误如下:") fmt.Println(err) os.Exit(0) }
参考:https://github.com/polaris1119/The-Golang-Standard-Library-by-Example/blob/master/chapter02/02.3.md