1. 程式人生 > 實用技巧 >Go的100天之旅-03變數

Go的100天之旅-03變數

變數

變數介紹

變數這個詞來源於數學,類似方程中的x、y,代表的是儲存在計算機中的值。這裡主要介紹Go和其它程式語言不一樣的地方,在前面我們提到過,Go是一門靜態語言。靜態語言區別動態語言一個重要的特性就是變數的型別不可變,一般是在宣告的時候就指定型別,之後就不可修改它的型別,而動態語言可以隨時修改變數的型別。Go的變數可以在宣告的時候不指定型別而是直接賦值,Go會自動根據值判斷變數的型別,比如:

var i = 1

當然這時i的型別(int)也就確定了之後不能修改i的型別。
也可以宣告的時候指定型別:

var i int

這裡面的i就是int型別。如果變數宣告的時候沒有給定初始值,那預設就是零值,比如:

var i int
var s string

fmt.Println(i)
fmt.Println(s)

輸出是:

0


這裡string的零值是""。bool型別的零值是false,以後講到的指標型別零值是nil

Go的簡短形式:=宣告

上面介紹過,Go可以在變數定義的時候比指定型別,系統自動判斷型別,那宣告的變數的時候加上var是不是感覺有點多餘了。Go可以用:=這種寫法直接宣告變數例如:

i := 5
a := false

這時i就是int型別值為5a就是bool型別值為false,需要注意的是它只能被用在函式中,不能全域性的宣告變數例如:

package main

import "fmt"
i := 1

func main() {
    fmt.Println(i)
}

這樣是不行的。
還有就是相同的變數,在同一個程式碼塊中只能這樣被宣告一次,第二次宣告也是錯誤的例如:

package main

import "fmt"

func main() {
    i := 1
    i : = 2
    fmt.Println(i)
}

這樣也會報錯。

多變數宣告

多變數宣告是指一次可以宣告多個變數例如

var i, j, k int
i, j, k = 0, 1, 2

var m, n = 1, 2
var a, b = 1, false

需要指出的是多個變數宣告可以指定不通的型別例如上面 var a, b = 1, false
也支援:=

形式的多變數宣告

a, b := 1, false

只要 := 左側出現了新的變數就可以例如:

a, b := 1, false
b, c := false, 1