Go的100天之旅-03變數
阿新 • • 發佈:2020-07-13
變數
變數介紹
變數這個詞來源於數學,類似方程中的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
型別值為5
,a
就是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