Go語言學習筆記(語法篇) - 基本數據類型、變量

基本數據類型

類型        大小      默認值
bool      1bits        false
int8       8bits        0
int16     16bits       0
int32     32bits       0
int64     64bits       0
float32  32bits       0
float64  64bits       0
string                  ""

byte,這個等同於int8,屬於它的別名
int,沒有顯示的聲明int是多少位的,那麼它會根據平臺來自行決定,如32位的系統int就是32位的,64位的系統int就是64位的。 spa

變量聲明

Go語言是強類型語言,但它的變量聲明比較靈活。
var 變量名 類型 = 值
var 變量名 = 值
變量名 := 值

如: code

var a int = 1
var b = 2
c := 3
var a, b int = 1, 2
var c, d = 3, 4
e, f := 4, 5

在沒有顯示的聲明類型的時候,Go語言編譯器會根據賦的值進行類型推斷,不過要注意一點,在聲明瞭變量後、並無使用這個變量的時候,編譯會報錯 e declared and not used。這點我也很不理解,爲何Go編譯器要作這種校驗,哪怕給一個警告也比這樣要好吧,若是有誰知道這樣的好處請告訴我一下,感謝。
若是不想讓編譯器對聲明未使用的變量報錯,能夠使用_來代替,_爲一個特殊的變量,任何賦給它的值都將被拋棄。


Go語言不支持不一樣類型間的隱式轉換,如如下代碼片段編譯器會報出invalid operation: a + b (mismatched types int32 and int64)
編譯器

var a int32 = 10
var b int64 = 20
c := a + b
fmt.Println(c)

因此要想讓不一樣類型間進行計算,須要進行強制轉換 string

var a int32 = 10
var b int64 = 20
c := int64(a) + b
fmt.Println(c)


const能夠聲明一個常量,也能夠當作枚舉來使用 it

const a int = 100
const b = 200
const (
    APPLE  = iota
    ORANGE = iota
    BANANA = iota
)
iota能夠用來表明枚舉值,從0開始,往下每次會+1,上面的APPLE = 0, ORANGE = 1, BANANA = 2。也能夠只寫一個iota,下面的都省略,效果與上面的同樣。
const a int = 100
const b = 200
const (
    APPLE  = iota
    ORANGE
    BANANA
)
相關文章
相關標籤/搜索