日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Go 语言数据类型

發布時間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Go 语言数据类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

變量與常量

變量聲明 ,初始化與賦值

單個變量聲明和賦值

1)變量的聲明格式:var <變量名稱>【變量類型】

2)變量的賦值格式:<變量名稱> =< 值 ,表達式,函數等>

3)聲明和賦值同時進行:var <變量名稱>【變量類型】=<值,表達式,函數等>

4)分明聲明格式:

var(

i int

j float 32

name string

)

a.同一行聲明多個變量和賦值:var a,b,c int=1,2,3 或者a,b :=1,2

b.全局變量的聲明必須使用var 關鍵詞,局部變量則可以省略,比如a.里面a,b :=1,2只能用到函數內

c,特殊變量下劃線“_” 這里的_就是個垃圾桶,把值扔進了垃圾桶后,程序中再不用這個值相當于php里的unset

變量的類型轉換

1)GO中不存在隱式轉換,類型轉換必須是顯式的(必須要有目標類型)

2)類型轉換只能發生在兩種兼容類型之間(int和bool之間是沒法轉換的)

3)類型轉換格式:<變量名稱>[:]=<目標類型>(<需要轉換的變量>)

變量可見性規則

1)大寫字母開頭的變量是可導出的,也就是其他包可以讀取的,是公用變量

2)小寫字母開頭的就是不可導出的,是私有變量

test.go

package wangwawaimport "fmt"var Name string = "wawa"; //變量名首字母大寫,可被其他包引用func init() {fmt.Println("this is wangwawa test") } func Test() {}

varTest.go

//程序所屬包 *必須package main//導入依賴包import ("fmt""reflect""unsafe""awesomeProject/wangwawa" )var a intvar b int = 12345;var (c intd int = 1234e string ) var i,g,h int=4,5,6 var w,v,m =4,5.2,6 //類型可不寫,不寫就默認電腦位數類型//main函數 func main(){fmt.Println(wangwawa.Name)ww,www,wwww := 4,5.2,6 //這種寫法只能在函數內var k,_,kk = 3,4.4,4 //_代表放棄,垃圾桶var (f string)var n int =3nn := float32(n)fmt.Println(nn)fmt.Println(reflect.TypeOf(nn))fmt.Println(unsafe.Sizeof(nn))fmt.Println(a) //int默認值為0a = 123;fmt.Println(a)fmt.Println(b)fmt.Println(c)fmt.Println(d)fmt.Println(e) //string默認值為空fmt.Println(f)fmt.Println(i)fmt.Println(h)fmt.Println(g)fmt.Println(w)fmt.Println(reflect.TypeOf(w))fmt.Println(v)fmt.Println(reflect.TypeOf(v))fmt.Println(m)fmt.Println(ww)fmt.Println(www)fmt.Println(wwww)fmt.Println(k)fmt.Println(kk) }

運行結果:

this is wangwawa test
wawa
3
float32
4
0
123
12345
0
1234


4
6
5
4
int
5.2
float64
6
4
5.2
6
3
4
?

常量,常量聲明和iota的使用

1)常量定義形式和常量類型范圍

a.常量定義形式上可分為顯式和隱式

顯式:const identifier? [type] = value

隱式:const identifier = value (通常叫無類型常量)

b.常量可以使用內置表達式定義,例如:len(),unsafe.Sizeof()等

c.常量范圍目前只支持布爾型、數字型(整數,浮點和復數)和字符串型

constTest.go

//程序所屬包 *必須 package mainimport ("fmt""reflect" )const name string = "wawa";const w_name = "wawa";const (title = "test"dog string = "dog" )const names,code = "wawa",0 const aname = len(dog)//表達式 這里的函數只能是內置函數,其他自定義的會報錯//第二個()是返回類型 func ic(g string)(string) {return "11" } //main函數 func main(){fmt.Println(ic(w_name))fmt.Println(name)fmt.Println(w_name)fmt.Println(title)fmt.Println(dog)fmt.Println(names)fmt.Println(reflect.TypeOf(names))fmt.Println(code)fmt.Println(reflect.TypeOf(code))fmt.Println(aname) }

運行結果:

11
wawa
wawa
test
dog
wawa
string
0
int
3

2)特別常量iota的使用
a. iota在const關建字出現時將被重置為0

b. const中每新增一行常量聲明將使iota計算一次

c.iota常見使用法:

1.跳值使用法

2.插隊使用法

3.表達式隱式使用法

4.單行使用法

iota不可以用于函數內

iotaTest.go

//程序所屬包 *必須package main//導入依賴包import ("fmt" ) const a = iota const (d = iota //0b = iota //1_ //垃圾桶,跳過2_ //垃圾桶,跳過3c = iota //4e = 3.14 //中間把5插一個進來成3.14f = iota //6g = iota * 2 //7 7*2h //省略 iota寫法,自動引用最上面非空表達式 8*2i //省略 iota寫法,自動引用最上面非空表達式 9*2j = iota //10k,l = iota+1, iota+3 //12 14m,n //13 15 m引用的k,n引用的是lo = iota //13 ) //main函數 func main(){fmt.Println(a)fmt.Println(d)fmt.Println(b)fmt.Println(c)fmt.Println(e)fmt.Println(f)fmt.Println(g)fmt.Println(h)fmt.Println(i)fmt.Println(j)fmt.Println(k)fmt.Println(l)fmt.Println(m)fmt.Println(n)fmt.Println(o) }

運行結果:

0
0
1
4
3.14
6
14
16
18
10
12
14
13
15
13

?

?

總結

以上是生活随笔為你收集整理的Go 语言数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。