1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

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

        共 4743字,需瀏覽 10分鐘

         ·

        2020-10-20 16:21

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

        回復(fù)“Go語言”即可獲贈Python從入門到進階共10本電子書

        蜀道之難,難于上青天,使人聽此凋朱顏!

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


        前言

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


        iota

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

        我們先來理解這一段話。

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

        示例1:

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

        示例2:

        遇到_會是什么情況。

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

        示例3:

        一行多個iota

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


        整型

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

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

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

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

        在不同平臺上的差異。

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

        示例:

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


        浮點型

        在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)//功能:輸出浮點型數(shù),結(jié)果:1.210000 fmt.Printf("%.1f\n",a)//功能:輸出浮點型數(shù),保留小數(shù)點一位,其他忽略,結(jié)果:1.2 fmt.Printf("%.2f\n",a)//功能:輸出浮點型數(shù),保留小數(shù)點二位,其他忽略,結(jié)果:1.21}


        布爾值

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

        無示例。

        注:

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

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


        字符串

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

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

        示例:

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

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

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


        多行字符串

        有時候我們可能需要一個長篇大論,需要很長的字符串,這時候我們需要用到`號。

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


        字符串常用操作

        方法介紹
        len(str)求長度
        +或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é)長度 //var name = "你好,世界" //fmt.Println(len(name)) //因為中文是utf8,一個文字三個字節(jié),再加一個,號,所以是13
        //fmt.Sprintf 或 + 拼接字符串 //name1 := "張" //name2 := "三" //name :=name1 + name2 //拼接字符串 //fmt.Println(name) //name := fmt.Sprintf("%s%s", name1, name2)//同上,不過這種更靈活,推薦 //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 判斷前綴(是不是以什么開頭) //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() 返回第一個字符串出現(xiàn)的位置 //name := "hello world" //index := strings.Index(name, "o") //fmt.Println(index) //4
        //strings.LastIndex() // 正向數(shù),返回最后一個字符串出現(xiàn)的位置 //name := "hello world" //index := strings.LastIndex(name, "o") //fmt.Println(index) // 7
        //strings.Join(a[]string, sep string) 字符串拼接 //info_list := []string{"張三", "男", "18"} //定義一個列表 //name := strings.Join(info_list, "|") //fmt.Println(name) //張三|男|18}


        總結(jié)

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

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

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

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

        想加入學(xué)習(xí)群請在后臺回復(fù)【入群

        萬水千山總是情,點個【在看】行不行

        瀏覽 74
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            黄色免费动漫 | 五月丁香激情综合 | 杂技全黄一级A片 | 丁香花综合 | 国产黄色性爱视频 | 五月婷婷婷婷 | 一级特黄录像免费看 | 靠逼视频网页观看 | 粉嫩小泬无套白浆流出 | 荷兰女人做爰视频 |