日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
捋一捋Go語(yǔ)言的一個(gè)類型轉(zhuǎn)換工具包strconv包

前言

創(chuàng)新互聯(lián)是一家專業(yè)提供肇源企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站建設(shè)、HTML5、小程序制作等業(yè)務(wù)。10年已為肇源眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

Hey,大家好,我是碼農(nóng),星期八,這次咱們來(lái)學(xué)一下Go語(yǔ)言的一個(gè)類型轉(zhuǎn)換工具包strconv。

不知道你有沒有想過。

在Go中,字符串100如何轉(zhuǎn)成數(shù)字100。

這樣?

 
 
 
 
  1. func main() { 
  2.     var score = "100" 
  3.     i := int(score) 
  4.     fmt.Printf(i) 

No,No,No,看一下執(zhí)行結(jié)果。

報(bào)錯(cuò)啦,說明并不是這么簡(jiǎn)單粗暴轉(zhuǎn)換的!!!

string轉(zhuǎn)int(用Atoi)

代碼

 
 
 
 
  1. func main() { 
  2.     //string 100 
  3.     var scoreStr = "100" 
  4.     fmt.Printf("%v,%T\n", scoreStr, scoreStr) //100,string 
  5.     score, err := strconv.Atoi(scoreStr) 
  6.     //轉(zhuǎn)換失敗 
  7.     if err != nil { 
  8.         panic(err) 
  9.     fmt.Printf("%v,%T\n", score, score) 

執(zhí)行結(jié)果

可以發(fā)現(xiàn),轉(zhuǎn)換成功之后,就成了int類型。

int轉(zhuǎn)string(用Itoa)

代碼

 
 
 
 
  1. func main() { 
  2.     //int 100 
  3.     var scoreInt = 100 
  4.     fmt.Printf("%v,%T\n", scoreInt, scoreInt) //100,string 
  5.     score  := strconv.Itoa(scoreInt) 
  6.     fmt.Printf("%v,%T\n", score, score) 

執(zhí)行結(jié)果

注:在Go中,只能通過上述兩種方式進(jìn)行string -> int,int -> string。

strconv.Parse轉(zhuǎn)換

strconv的Parse相關(guān)方法,也是講string類型轉(zhuǎn)換為其他類型,但是相比之下。

strconv的Parse的多樣性會(huì)多一點(diǎn)。

strconv.ParseBool()

這個(gè)方法,是將字符串的Bool類型,轉(zhuǎn)成真正的Bool類型。

示例代碼

 
 
 
 
  1. func main() { 
  2.     var tString = "true"http://可以是 1,0,t,f,T,F(xiàn),true,false,True,F(xiàn)alse,TRUE,F(xiàn)ALSE 
  3.     fmt.Printf("%T,%v\n", tString, tString) 
  4.     tBool, err := strconv.ParseBool(tString) 
  5.     if err != nil { 
  6.         panic(err) 
  7.     fmt.Printf("%T,%v\n", tBool, tBool) 

執(zhí)行結(jié)果

成功將字符串true轉(zhuǎn)成Bool true。

strconv.ParseInt()

這個(gè),就很簡(jiǎn)單了,跟strconv.Atoi()基本一樣。

示例代碼

 
 
 
 
  1. func main() { 
  2.    var tString = "666" 
  3.    fmt.Printf("%T,%v\n", tString, tString) 
  4.    tInt, err := strconv.ParseInt(tString,10,64) 
  5.    if err != nil { 
  6.       panic(err) 
  7.    } 
  8.    fmt.Printf("%T,%v\n", tInt, tInt) 

執(zhí)行結(jié)果

第二個(gè)參數(shù)10和第三個(gè)參數(shù)64的意思。

可能你同我一樣,剛開始不明白第二個(gè)參數(shù)10和第三個(gè)參數(shù)64的意思。

但是下面一張圖,可能你就懂了。

理解就好,一般情況下,寫成上述代碼就行,本來(lái)就是轉(zhuǎn)int的,想那么多干嘛!!!

strconv.parseUint()

同上,但是這個(gè)只能轉(zhuǎn)正數(shù),不能轉(zhuǎn)負(fù)數(shù)。

strconv.ParseFloat()

這個(gè),看名字就知道是將字符串浮點(diǎn)數(shù)轉(zhuǎn)真正的浮點(diǎn)數(shù)咯。

示例代碼

 
 
 
 
  1. func main() { 
  2.     var tString = "3.1415" 
  3.     fmt.Printf("%T,%v\n", tString, tString) 
  4.     tFloat, err := strconv.ParseFloat(tString,64) 
  5.     if err != nil { 
  6.         panic(err) 
  7.     fmt.Printf("%T,%v\n", tFloat, tFloat) 

第二個(gè)參數(shù)64,同上,也是因?yàn)榉祷氐木褪莊loat64,所以容量也得是64。

執(zhí)行結(jié)果

strconv.Format轉(zhuǎn)換

這個(gè)和strconv.Parse是相反的,是將int/float/bool等 -> string的一個(gè)過程。

但是我總感覺有點(diǎn)脫褲子放屁的感覺,既然官方提供了,就隨便看看叭!!!

這里我就使用簡(jiǎn)述的代碼來(lái)寫的。

 
 
 
 
  1. func main() { 
  2.     a := strconv.FormatBool(true) 
  3.     //E表示十進(jìn)制, 
  4.     b := strconv.FormatFloat(3.1415, 'E', -1, 64) 
  5.     c := strconv.FormatInt(666, 10) 
  6.     fmt.Printf("%v,%T\n",a,a) 
  7.     fmt.Printf("%v,%T\n",b,b) 
  8.     fmt.Printf("%v,%T\n",c,c) 

執(zhí)行結(jié)果

總結(jié)

其實(shí)這次我們的重點(diǎn)主要是前倆,string - > int(用Atoi),int -> string(用Itoa)。

其他的主要分為strconv.Parse系列和strconv.Format系列。

相對(duì)來(lái)說Parse系列可能會(huì)用的更多一點(diǎn),F(xiàn)ormat相關(guān)使用的不是太多,了解就好!

總之,不管怎么樣,都要敲一下代碼。

想學(xué)習(xí)更多關(guān)于Python的知識(shí),可以參考學(xué)習(xí)網(wǎng)址:http://pdcfighting.com/,點(diǎn)擊閱讀原文,可以直達(dá)噢~


當(dāng)前文章:捋一捋Go語(yǔ)言的一個(gè)類型轉(zhuǎn)換工具包strconv包
網(wǎng)站URL:http://www.5511xx.com/article/djoiehe.html