變數**於數學,是計算機語言中能儲存計算結果或能表示值抽象概念。變數可以通過變數名訪問。
go語言是靜態型別語言,不能在執行期間改變變數型別。使用關鍵字 var 定義變數,自動初始化為零值。如果提供初始化值,可省略變數型別,由編譯器自動推斷。
go語言中變數可以在三個地方宣告:
函式外定義的變數稱為全域性變數函式內定義的變數稱為區域性變數
函式定義中的變數稱為形式引數
接下來讓我們具體了解全域性變數、區域性變數和形式引數。
全域性變數
在函式體外宣告的變數稱之為全域性變數,全域性變數可以在整個包甚至外部包(被匯出後)使用。
區域性變數
在函式體內宣告的變數稱之為區域性變數,它們的作用域只在函式體內,引數和返回值變數也是區域性變數。
形式引數
形式引數會作為函式的區域性變數來使用。
變數宣告
第一種,指定變數型別,宣告後若不賦值,使用預設值。
var name string
第二種,根據值自行判定變數型別。
var age = 18
第三種,變數宣告並賦值
varclass
string = "
linux
"
第四種,一次性宣告多個變數
var mon, tues, wed, thur, fri, sat, sun intvar(
monday
inttuesday
intwednesday
intthursday
intfriday
intsaturday
intsunday
int)
第五種,短宣告變數
在函式內部,可以使用更簡略的 ":=" 方式定義變數。":=" 簡潔賦值語句在明確型別的地方,可以用於替代 var 定義。
package mainfunc main()
注意:":=" 結構不能在函式外使用。
第六種,形式引數
package mainfunc main()
func sum(a, b
int) (c int
)
變數優先順序
go語言程式中全域性變數與區域性變數名稱可以相同,但是函式內的區域性變數會被優先考慮。例項如下:
ackage mainimport
"fmt"//
宣告全域性變數
var variable string = "
全域性變數
"func main()
執行結果:
結果:區域性變數
多變數賦值時,先計算所有相關值,然後再從左到右依次賦值。
package mainimport
"fmt
"func main() , 0
i, data[i] = 2, "
oldboy
"fmt.printf(
"i:%v,data:%v\n
", i, data)
}
輸出結果:
i:2,data:[oldboy python linux golang]
Go 語言變數
go 語言變數名由字母 數字 下劃線組成,其中首個字元不能為數字。宣告變數的一般形式是使用 var 關鍵字 var identifier type變數宣告 第二種,根據值自行判定變數型別。第三種,省略 var,注意 左側需要宣告新的變數,否則就會產生編譯錯誤 package main import ...
Go語言變數
可以包含字幕,數字,下劃線。必須是字幕或者下劃線開頭 下劃線不建議 不能是關鍵字。首字母大寫為公有變數,可以被外包應用,小寫為私有變數,只可以在包內使用。1 var 變數名 型別名 變數值 2 自動推導型別 變數名 變數值 go語言函式支援多個返回值,當某個返回值不需要時,可以用匿名變數下劃線 接收...
GO語言 變數
宣告方式 var name type和c c 中 type name extern type name 在go語言中所有形式變數名稱都在型別的前面,這點和c c 是反過來的。注意如果區域性變數c c 會是乙個隨機值,而go語言會初始化為0 定義方式 var n int 10 n 10這兩行是等價的。...