Go的100天之旅 03變數

2021-10-08 05:34:09 字數 1577 閱讀 5934

變數這個詞**於數學,類似方程中的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型別值為5a就是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...