前言大家好,我是码农,周五,这次来学习Go语言的类型转换工具包strconv。不知道你有没有想过。如何在Go中将字符串100转换为数字100。像这样?funcmain(){varscore="100"i:=int(score)fmt.Printf(i)}不不不,看执行结果。报错,说明不是这么简单粗暴的转换!!!stringtoint(useAtoi)代码funcmain(){//string100varscoreStr="100"fmt.Printf("%v,%T\n",scoreStr,scoreStr)//100,stringscore,err:=strconv.Atoi(scoreStr)//转换失败iferr!=nil{panic(err)}fmt.Printf("%v,%T\n",score,score)}execution结果可以发现转换成功后,它变成了一个int类型。int到字符串(使用Itoa)代码funcmain(){//int100varscoreInt=100fmt.Printf("%v,%T\n",scoreInt,scoreInt)//100,stringscore:=strconv.Itoa(scoreInt)fmt.Printf("%v,%T\n",score,score)}执行结果注意:在Go中,string->int,int->string只能通过以上两种方式执行。strconv.Parse转换strconv的Parse相关方法,同样是将string类型转换为其他类型,但是比较。strconv的Parse的多样性会多一点。strconv.ParseBool()方法将字符串的Bool类型转换为真正的Bool类型。示例代码funcmain(){vartString="true"//可以是1,0,t,f,T,F,true,false,True,False,TRUE,FALSEfmt.Printf("%T,%v\n",tString,tString)tBool,err:=strconv.ParseBool(tString)iferr!=nil{panic(err)}fmt.Printf("%T,%v\n",tBool,tBool)}执行结果打印成功characters字符串true转换为Booltrue。strconv.ParseInt()很简单,和strconv.Atoi()基本一样。示例代码funcmain(){vartString="666"fmt.Printf("%T,%v\n",tString,tString)tInt,err:=strconv.ParseInt(tString,10,64)iferr!=nil{panic(err)}fmt.Printf("%T,%v\n",tInt,tInt)}表示执行结果的第二个参数10和第三个参数64。可能你和我一样,一开始不理解第二个参数10和第三个参数64的含义。但是下面这张图,你可能就明白了。很好理解。一般情况下,写上面的代码就可以了。它最初被转换为int。怎么想那么多!!!strconv.parseUint()同上,但是这个只能转换正数,不能转换负数。strconv.ParseFloat(),听名字就知道,它是将字符串浮点数转换成真正的浮点数。示例代码funcmain(){vartString="3.1415"fmt.Printf("%T,%v\n",tString,tString)tFloat,err:=strconv.ParseFloat(tString,64)iferr!=nil{panic(err)}fmt.Printf("%T,%v\n",tFloat,tFloat)}第二个参数是64,同上,因为返回是float64,所以容量也必须是64。执行结果strconv.Format转换与strconv.Parse相反,是int/float/bool等转换的过程->string。但是总感觉有点想脱裤子放屁。既然是官方提供的,就看看吧!!!这里我用简码来写。funcmain(){a:=strconv.FormatBool(true)//E表示十进制,b:=strconv.FormatFloat(3.1415,'E',-1,64)c:=strconv.FormatInt(666,10)fmt.Printf("%v,%T\n",a,a)fmt.Printf("%v,%T\n",b,b)fmt.Printf("%v,%T\n",c,c)}执行结果总结其实这次我们的重点主要在前两个,string->int(使用Atoi),int->string(使用Itoa)。其他的主要分为strconv.Parse系列和strconv.Format系列。相对来说,Parse系列可能用的多一点,而Format用的不多,懂就好!总之,无论如何,都要敲代码。如果想深入了解Python,可以参考学习网站:http://pdcfighting.com/,点击阅读原文,可直接前往~
