變數這個詞**於數學,類似方程中的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可以在變數定義的時候比指定型別,系統自動判斷型別,那宣告的變數的時候加上var是不是感覺有點多餘了。go可以用
:=
這種寫法直接宣告變數例如:
i := 5
a := false
這時i
就是int
型別值為5
,a
就是bool
型別值為false
,需要注意的是它只能被用在函式中,不能全域性的宣告變數例如:
package main
import "fmt"
i := 1
func main()
這樣是不行的。
還有就是相同的變數,在同乙個**塊中只能這樣被宣告一次,第二次宣告也是錯誤的例如:
package main
import "fmt"
func main()
這樣也會報錯。
多變數宣告是指一次可以宣告多個變數例如
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
Go的100天之旅 01初識Go
上個世紀70年代ken thompson和dennis m.ritchie合作發明了unix作業系統同時dennis m.ritchie發明了c語言。2007年的robert griesemer,rob pike和ken。thompson三位大牛在google公司開始編寫和設計go語言。2009年g...
Go的100天之旅 02基本語法
下面是go的25個關鍵字 break default func inte ce select case defer gomap struct chan else goto package switch const fallthrough ifrange type continue forimport...
Go的100天之旅 06陣列和Slice
go的陣列和其它語言基本上一樣,是長度固定的特定型別元素組成的序列,這基本上是所有語言陣列的特性。和其它語言相比差異主要在宣告和初始化的寫法上,下面是簡單宣告乙個陣列 var a 5 int fmt.println a 0 fmt.println fmt.println a len a 1 上面的a...