自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

[[429281]]

上篇文章中我們學(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)理解這一段話。

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

示例1:

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

示例2:

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

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

示例3:

一行多個(gè)iota。

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

整型

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

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

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

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

示例:

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

浮點(diǎn)型

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

示例:

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

布爾值

在Go中,bool類型就倆值,true和false。

無(wú)示例。

注:

  1. bool類型默認(rèn)值為false。
  2. true != 1,在Go中,bool類型和整型不能混用。

字符串

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

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

示例:

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     var name = "hello" 
  7.     var name2 = "張三" 
  8.     fmt.Println(name,name2) 

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

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

多行字符串

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

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

字符串常用操作

示例代碼

  1. package main 
  2.  
  3. func main() { 
  4.   //len() 求字符串字節(jié)長(zhǎng)度 
  5.   //var name = "你好,世界" 
  6.   //fmt.Println(len(name)) //因?yàn)橹形氖莡tf8,一個(gè)文字三個(gè)字節(jié),再加一個(gè),號(hào),所以是13 
  7.  
  8.   //fmt.Sprintf 或 + 拼接字符串 
  9.   //name1 := "張" 
  10.   //name2 := "三" 
  11.   //name :=name1 + name2 //拼接字符串 
  12.   //fmt.Println(name
  13.   //name := fmt.Sprintf("%s%s", name1, name2)//同上,不過(guò)這種更靈活,推薦 
  14.   //name := fmt.Sprintf("我的姓名是:%s%s", name1, name2)//自定義拼接 
  15.   //fmt.Println(name
  16.  
  17.   //strings.Split 分割字符串 
  18.   //name := "張三|18|男|法外狂徒" 
  19.   //info := strings.Split(name, "|"
  20.   //fmt.Println(info) //返回的是切片,[張三 18 男 法外狂徒] 
  21.  
  22.   //strings.contains 是否包含 
  23.   //name := "張三666" 
  24.   //result := strings.Contains(name, "6"
  25.   //fmt.Println(result) //返回的是bool類型,true 
  26.  
  27.   //strings.HasPrefix 判斷前綴(是不是以什么開頭) 
  28.   //name := "web/student/xxx.html" 
  29.   //result := strings.HasPrefix(name, "web"
  30.   //fmt.Println(result) //true 
  31.  
  32.   //strings.HasSuffix 判斷后綴(是不是以什么結(jié)尾) 
  33.   //name := "web/student/xxx.html" 
  34.   //result := strings.HasSuffix(name, "html"
  35.   //fmt.Println(result)//true 
  36.  
  37.   //strings.Index() 返回第一個(gè)字符串出現(xiàn)的位置 
  38.   //name := "hello world" 
  39.   //index := strings.Index(name, "o"
  40.   //fmt.Println(index) //4 
  41.  
  42.   //strings.LastIndex() // 正向數(shù),返回最后一個(gè)字符串出現(xiàn)的位置 
  43.   //name := "hello world" 
  44.   //index := strings.LastIndex(name, "o"
  45.   //fmt.Println(index) // 7 
  46.  
  47.   //strings.Join(a[]string, sep string) 字符串拼接 
  48.   //info_list := []string{"張三", "男", "18"} //定義一個(gè)列表 
  49.   //name := strings.Join(info_list, "|"
  50.   //fmt.Println(name) //張三|男|18 

總結(jié)

上述我們學(xué)習(xí)了Go基礎(chǔ)之?dāng)?shù)據(jù)類型。

 

責(zé)任編輯:姜華 來(lái)源: Go語(yǔ)言進(jìn)階學(xué)習(xí)
相關(guān)推薦

2021-10-09 07:10:31

Go語(yǔ)言基礎(chǔ)

2020-10-23 08:38:19

Go語(yǔ)言

2020-11-05 09:58:16

Go語(yǔ)言Map

2022-02-16 10:03:06

對(duì)象接口代碼

2020-10-22 08:33:22

Go語(yǔ)言

2020-11-11 10:52:54

Go語(yǔ)言C語(yǔ)言

2022-04-27 10:01:43

切片Go封裝

2020-12-30 09:04:32

Go語(yǔ)言TCPUDP

2020-10-25 07:33:13

Go語(yǔ)言

2020-12-09 09:59:32

Go語(yǔ)言技術(shù)

2020-12-27 10:15:44

Go語(yǔ)言channel管道

2020-12-07 05:59:02

語(yǔ)言Go接口

2021-10-30 10:43:04

語(yǔ)言Go函數(shù)

2021-11-03 10:02:07

Go基礎(chǔ)函數(shù)

2021-09-29 10:00:07

Go語(yǔ)言基礎(chǔ)

2021-10-13 10:00:52

Go語(yǔ)言基礎(chǔ)

2020-10-22 11:15:47

Go語(yǔ)言變量

2020-12-23 08:39:11

Go語(yǔ)言基礎(chǔ)技術(shù)

2021-02-20 10:06:14

語(yǔ)言文件操作

2021-01-13 08:40:04

Go語(yǔ)言文件操作
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)