通过上面的学习我们了解到了在Golang中有很多数据类型,每一个数据类型都有一个暂时叫标签吧,例如整数类型就是int,字符串就是string。知道了数据类型的标签,我们在进行转换的时候就需要用到了,上面看到过使用uint8转成字符串,用到了string()函数。那么我们尝试一下把整数转成string是否可以。看下面的例子:
package main // 吴老二 个人博客地址 http://www.wulaoer.org import ( "fmt" "strconv" ) func main() { wulaoer := "987654321" if wulaoer, err := strconv.Atoi(wulaoer); err == nil { fmt.Printf("字符串转整数结果:i=%d, type: %T\n",wulaoer,wulaoer) } }
输出结果:
字符串转整数结果:i=987654321, type: int
这里使用了strconv.Atoi()函数,在Atoi()中的代码是这样的func Atoi(s string) (int, error),返回的是两个值,一个是转换成int的值,一个是返回值的判断是否转换成功。我们可以不用判断,直接返回结果。
package main // 吴老二 个人博客地址 http://www.wulaoer.org import ( "fmt" "strconv" ) func main() { wulaoer := "987654321" wulaoer := "987654321" i, _ := strconv.Atoi(wulaoer) wolf := reflect.TypeOf(wulaoer) wolf2 := reflect.TypeOf(i) fmt.Println("转换后原字符串,原字符串类型,转换后整数,转换后整数类型",wulaoer,wolf,i,wolf2) }
输出结果:
转换后原字符串,原字符串类型,转换后整数,转换后整数类型 987654321 string 987654321 int
这里不进行判断,直接进行转换,相比简单一些,不过使用的都是同一个方法。
字符串转int64
字符串转int64也用到了strconv()包中的ParseInt()方法,方法的代码是func ParseInt(s string, base int, bitSize int) (i int64, err error),这里的bitSize表示参数转换为多少位的int/uint,有效值为0,8,16,32,64.当bitSize=0时,表示转换为int或uint类型,例如bitSize=8表示转换后的值的类型为int8或uint8。base表示以多少禁止的方式去解析给指定的字符串,有效值0,2-36。当base=0时,表示跟进的string的前缀来判断以什么进制去解析:0x开头的以16进制的方式去解析,0开头的以8进制去解析,其他的以十进制去解析。看下面的例子:
package main // 吴老二 个人博客地址 http://www.wulaoer.org import ( "fmt" "strconv" ) func main() { wulaoer := "987654321" if wulaoer,err := strconv.ParseInt(wulaoer, 10 ,64); err == nil { fmt.Printf("字符串转int64结果i=%d,type:%T\n",wulaoer,wulaoer) } }
输出结果:
字符串转int64结果i=987654321,type:int64
这里使用的是字符串转整数,使用了10进制去解析,保存类型为64.还可以使用浮点数或者布尔类型以及无符合整型等等,看看他们的方法有哪些?浮点数可以使用ParseFloat(),布尔类型可以使用ParseBool(),无符号整型可以使用ParseUint()。看下面的例子:
package main // 吴老二 个人博客地址 http://www.wulaoer.org import ( "fmt" "reflect" "strconv" ) func main() { wulaoer := "987654321" b, _ := strconv.ParseBool("true") b_type := reflect.TypeOf(b) fmt.Println("布尔类型值,转换后类型",b,b_type) f, _ := strconv.ParseFloat("3.1415926",64) f_type := reflect.TypeOf(f) fmt.Println("浮点数类型值,转换后类型",f,f_type) wulaoer, _ := strconv.ParseUint("27",10,64) wulaoer_type := reflect.TypeOf(wulaoer) fmt.Println("无符号整数类型值,转换后类型",wulaoer,wulaoer_type) wolf, _ := strconv.ParseInt("-27",10,64) wolf_type := reflect.TypeOf(wolf) fmt.Println("整数类型值,转换后类型",wolf,wolf_type) }
输出结果:
布尔类型值,转换后类型 true bool 浮点数类型值,转换后类型 3.1415926 float64 无符号整数类型值,转换后类型 27 uint64 整数类型值,转换后类型 -27 int64
这就是布尔类型,字符串对浮点数,整型的转换过程。以上是string类型转换为给定的类型,下面进行给定类型转换为string类型。
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏