<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一篇文章帶你了解Go語(yǔ)言基礎(chǔ)之?dāng)?shù)據(jù)類型

          共 4743字,需瀏覽 10分鐘

           ·

          2020-10-20 16:21

          點(diǎn)擊上方“Go語(yǔ)言進(jìn)階學(xué)習(xí)”,進(jìn)行關(guān)注

          回復(fù)“Go語(yǔ)言”即可獲贈(zèng)Python從入門到進(jìn)階共10本電子書(shū)

          蜀道之難,難于上青天,使人聽(tīng)此凋朱顏!

          上篇文章中我們學(xué)習(xí)了Go語(yǔ)言基礎(chǔ)中的變量,一篇文章帶你了解Go語(yǔ)言基礎(chǔ)之變量,這篇文章我們繼續(xù)介紹Go語(yǔ)言基礎(chǔ)知識(shí),今天跟大家分享的是基礎(chǔ)數(shù)據(jù)類型,一起來(lái)學(xué)習(xí)下吧~


          前言

          Hey,大家好呀,我是星期八,這次咱們繼續(xù)學(xué)習(xí)Go基礎(chǔ)之?dāng)?shù)據(jù)類型叭。


          iota

          iota是Go中的一個(gè)常量計(jì)數(shù)器,只能在跟常量(const)一塊使用。

          我們先來(lái)理解這一段話。

          iota在const關(guān)鍵字出現(xiàn)時(shí)將被重置為0
          const中每新增一行常量,iota將計(jì)數(shù)(+1)一次

          示例1:

          package main
          import "fmt"
          func main() { const ( n1 = iota //在const關(guān)鍵字出現(xiàn)時(shí)將被重置為0 n2 //沒(méi)寫(xiě)相當(dāng)于寫(xiě)了個(gè)n2=iota,每新增一行常量iota計(jì)數(shù)(+1)一次,n2 = 1 n3 //同上 n3 = 2 n4 // 同上 n4 = 3) fmt.Println(n1, n2, n3, n4)}

          示例2:

          遇到_會(huì)是什么情況。

          package main
          import "fmt"
          func main() { const ( n1 = iota //在const關(guān)鍵字出現(xiàn)時(shí)將被重置為0 n2 // n2=1 _ //匿名變量,相當(dāng)于寫(xiě)了個(gè) _=iota,所以此時(shí)iota=2 n4 //n4=3) fmt.Println(n1, n2, n4)}

          示例3:

          一行多個(gè)iota

          package main
          import "fmt"
          func main() { const ( a, b = iota + 1iota + 2 //在const關(guān)鍵字出現(xiàn)時(shí),iota=0,并且兩次賦值在同一行,iota沒(méi)有做+1 c, d //同理,新增一行常量,常量個(gè)數(shù)為倆,仍然是一行,所以iota=1 //c, d = iota + 1, iota + 2 同上,此時(shí)iota=1,c=2,d=3 e, f // 同理,同上,e=3,f=4) fmt.Println(a, b, c, d, e, f)}


          整型

          整數(shù),很簡(jiǎn)單了,就是像1,2,3,7,11,..這樣的整型數(shù)字了。

          但是在Go中,整數(shù)分為兩大類,正整數(shù)和沒(méi)有符號(hào)的整數(shù)。

          u開(kāi)頭的不能存負(fù)數(shù)

          類型描述
          uint8無(wú)符號(hào) 8位整型 (0 到 255)
          uint16無(wú)符號(hào) 16位整型 (0 到 65535)
          uint32無(wú)符號(hào) 32位整型 (0 到 4294967295)
          uint64無(wú)符號(hào) 64位整型 (0 到 18446744073709551615)
          int8有符號(hào) 8位整型 (-128 到 127)
          int16有符號(hào) 16位整型 (-32768 到 32767)
          int32有符號(hào) 32位整型 (-2147483648 到 2147483647)
          int64有符號(hào) 64位整型 (-9223372036854775808 到 9223372036854775807)

          在不同平臺(tái)上的差異。

          類型描述
          uint32位操作系統(tǒng)上就是uint32,64位操作系統(tǒng)上就是uint64
          int32位操作系統(tǒng)上就是int32,64位操作系統(tǒng)上就是int64
          uintptr無(wú)符號(hào)整型,用于存放一個(gè)指針

          示例:

          package main
          import "fmt"
          func main() { var a = 10 //定義一個(gè)十進(jìn)制數(shù) fmt.Printf("%T\n", a) //功能:打印變量類型,結(jié)果:默認(rèn)為int類型,也叫int64 fmt.Printf("%d \n", a) //功能:十進(jìn)制輸出,結(jié)果:10 fmt.Printf("%b \n", a) //功能:二進(jìn)制輸出,結(jié)果:1010 fmt.Printf("%o \n", a) //功能:二進(jìn)制輸出,結(jié)果:12
          var b = 0b1010011010 //定義一個(gè)二進(jìn)制數(shù)1010011010,以0b開(kāi)頭 fmt.Printf("%d\n", b) //結(jié)果:666
          var c = 077 //定義一個(gè)八進(jìn)制數(shù)77 fmt.Printf("%d\n"c) //結(jié)果:63 var d = 0x42 //定義一個(gè)十六進(jìn)制42 fmt.Printf("%d\n", d) //結(jié)果:66}


          浮點(diǎn)型

          在Go中,只有float32float64,默認(rèn)使用的是float64

          示例:

          package main
          import "fmt"
          func main() { var a = 1.21 //默認(rèn)為float64 fmt.Printf("%T\n", a) //結(jié)果:float64 fmt.Printf("%f\n",a)//功能:輸出浮點(diǎn)型數(shù),結(jié)果:1.210000 fmt.Printf("%.1f\n",a)//功能:輸出浮點(diǎn)型數(shù),保留小數(shù)點(diǎn)一位,其他忽略,結(jié)果:1.2 fmt.Printf("%.2f\n",a)//功能:輸出浮點(diǎn)型數(shù),保留小數(shù)點(diǎn)二位,其他忽略,結(jié)果:1.21}


          布爾值

          在Go中,bool類型就倆值,truefalse

          無(wú)示例。

          注:

          1. bool類型默認(rèn)值為false

          2. true != 1,在Go中,bool類型和整型不能混用。


          字符串

          終于到字符串了,在Go中,字符串是基本數(shù)據(jù)類型,在棧中存儲(chǔ)。

          字符串的值為雙引號(hào)("")中的內(nèi)容。

          示例:

          package main
          import "fmt"
          func main() { var name = "hello" var name2 = "張三" fmt.Println(name,name2)}

          在Go中,字符串內(nèi)存布局如下。

          其實(shí)在Go中,字符串的本質(zhì)就是一個(gè)個(gè)的字符拼接成的。


          多行字符串

          有時(shí)候我們可能需要一個(gè)長(zhǎng)篇大論,需要很長(zhǎng)的字符串,這時(shí)候我們需要用到`號(hào)。

          package main
          import "fmt"
          func main() { var lyric = ` 昨夜同門云集bai 推杯又換盞 今朝du茶涼酒寒 豪言成笑談 半生累 盡徒然zhi 碑文完美有誰(shuí)看dao 隱居山水之間 誓與浮名散 湖畔青石板上 一把油紙傘 ` fmt.Println(lyric)}


          字符串常用操作

          方法介紹
          len(str)求長(zhǎng)度
          +或fmt.Sprintf拼接字符串
          strings.Split分割
          strings.contains判斷是否包含
          strings.HasPrefix,strings.HasSuffix前綴/后綴判斷
          strings.Index(),strings.LastIndex()子串出現(xiàn)的位置
          strings.Join(a[]string, sep string)join操作

          示例代碼

          package main
          func main() { //len() 求字符串字節(jié)長(zhǎng)度 //var name = "你好,世界" //fmt.Println(len(name)) //因?yàn)橹形氖莡tf8,一個(gè)文字三個(gè)字節(jié),再加一個(gè),號(hào),所以是13
          //fmt.Sprintf 或 + 拼接字符串 //name1 := "張" //name2 := "三" //name :=name1 + name2 //拼接字符串 //fmt.Println(name) //name := fmt.Sprintf("%s%s", name1, name2)//同上,不過(guò)這種更靈活,推薦 //name := fmt.Sprintf("我的姓名是:%s%s", name1, name2)//自定義拼接 //fmt.Println(name)
          //strings.Split 分割字符串 //name := "張三|18|男|法外狂徒" //info := strings.Split(name, "|") //fmt.Println(info) //返回的是切片,[張三 18 男 法外狂徒]
          //strings.contains 是否包含 //name := "張三666" //result := strings.Contains(name, "6") //fmt.Println(result) //返回的是bool類型,true
          //strings.HasPrefix 判斷前綴(是不是以什么開(kāi)頭) //name := "web/student/xxx.html" //result := strings.HasPrefix(name, "web") //fmt.Println(result) //true
          //strings.HasSuffix 判斷后綴(是不是以什么結(jié)尾) //name := "web/student/xxx.html" //result := strings.HasSuffix(name, "html") //fmt.Println(result)//true
          //strings.Index() 返回第一個(gè)字符串出現(xiàn)的位置 //name := "hello world" //index := strings.Index(name, "o") //fmt.Println(index) //4
          //strings.LastIndex() // 正向數(shù),返回最后一個(gè)字符串出現(xiàn)的位置 //name := "hello world" //index := strings.LastIndex(name, "o") //fmt.Println(index) // 7
          //strings.Join(a[]string, sep string) 字符串拼接 //info_list := []string{"張三", "男", "18"} //定義一個(gè)列表 //name := strings.Join(info_list, "|") //fmt.Println(name) //張三|男|18}


          總結(jié)

          上述我們學(xué)習(xí)了Go基礎(chǔ)之?dāng)?shù)據(jù)類型。如果在操作過(guò)程中有任務(wù)問(wèn)題,記得下面討論區(qū)留言,我們看到會(huì)第一時(shí)間解決問(wèn)題。

          我是碼農(nóng)星期八,如果覺(jué)得還不錯(cuò),記得動(dòng)手點(diǎn)贊一下哈,感謝你的觀看。

          -------------------?End?-------------------

          歡迎大家點(diǎn)贊轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群

          萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行

          瀏覽 74
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩操穴 | 大香蕉在线视频网 | 大鸡吧插嫩逼视频网站免费 | 性爱午夜视频 | 狠狠干 |