1、什么變數
變數來源于數學,從根本上說,變數相當于是對一塊資料存盤空間的命名,程式可以通過定義一個變數來申請一塊資料存盤空間,之后可以通過參考變數名來使用這塊存盤空間,
1.1變數宣告
Go 語言變數名由字母、數字、下劃線組成,其中首個字母不能為數字,
第一種,指定變數型別,宣告后若不賦值,使用默認值,
var v_name v_type v_name = value
第二種,根據值自行判定變數型別,
var v_name = value
第三種,省略var, 注意 :=左側的變數不應該是已經宣告過的,否則會導致編譯錯誤,
v_name := value // 例如 var a int = 10 var b = 10 c : = 10
(冒號和等號的組合:=),用于明確表達同時進行變數宣告和初始化的作業,
1.2、多變數宣告
1、型別相同多個變數, 非全域變數
var vname1, vname2, vname3 type vname1, vname2, vname3 = v1, v2, v3
2、自動推斷,不需要顯示宣告型別
var vname1, vname2, vname3 = v1, v2, v3 vname1, vname2, vname3 := v1, v2, v3 //出現在:=左側的變數不應該是已經被宣告過的,否則會導致編譯錯誤
3、型別不同多個變數, 全域變數, 區域變數不能使用這種方式
var (
vname1 v_type1
vname2 v_type2
)
實體如下:
package main
var x, y int
var ( //這種只能出現在全域變數中,函式體內不支持
a int
b bool
)
var c, d int = 1, 2
var e, f = 123, "hello"
//這種不帶宣告格式的只能在函式體中出現
//g, h := 123, "hello"
func main(){
g, h := 123, "hello"
fmt.Println(g) //輸出變數g
fmt.Println(h) //輸出變數h
}
1.3、變數賦值與初始化
在變數宣告時,就給變數指定一個值,這個程序叫變數初始化,如:
package main
//初始化變數c的值為2;變數d的值為2,
var c, d int = 1, 2
//初始化變數e的值為123;變數f的值為'hello',
var e, f = 123, "hello"
func main(){
//初始化變數g的值為123;變數h的值為'hello',
g, h := 123, "hello"
fmt.Println(g) //輸出變數g
fmt.Println(h) //輸出變數h
}
在Go語法中,變數初始化和變數賦值是兩個不同的概念,下面為宣告一個變數之后的賦值程序:
package main
import "fmt"
func main() {
//初始化變數g的值為123;變數h的值為'hello',
g, h := 123, "hello"
g = 234 //將 234 賦值給變數g
fmt.Println(g) //輸出變數g
fmt.Println(h) //輸出變數h
}
1.4、匿名變數
在Go語言中,單個的下劃線“_”是一個特殊的變數,我們稱之為匿名變數(anonymous variable),匿名變數不占用命名空間,不會分配記憶體,匿名變數與匿名變數之間也不會因為多次宣告而無法使用
我們在使用傳統的強型別語言編程時,經常會出現這種情況,即在呼叫函式時為了獲取一個值,卻因為該函式回傳多個值而不得不定義一堆沒用的變數,在Go中這種情況可以通過使用匿名變數來避免從而讓代碼看起來更加的優雅,
假設getTime()函式的定義如下,它回傳2個值,分別為hour和minute:
func getTime() (hour, minute int) {
return 11,20
}
若只想獲得hour,則:
h,_ := getTime()
2、常量
在Go語言中,常量是指編譯期間就已知且不可改變的值,常量可以是數值型別(包括整型、浮點型和復數型別)、布爾型別、字串型別等,
2.1、 常量定義
常量的定義格式:
const identifier [type] = value
你可以省略型別說明符 [type],因為編譯器可以根據變數的值來推斷其型別,舉例:
const Pi float64 = 3.14159265358979323846 const zero = 0.0 // 無型別浮點常量 const Pi, zero float32 = 3.14159265, 0.0 // 常量的多重賦值 // Pi = 3.14159265, zero = 0.0, name = "roy", 無型別整型和字串常量 const Pi, zero, name = 3.14159265, 0.0, "roy"
2.2、列舉
定義一組常量,在Go語言中叫做列舉,例如:
const ( Sunday = 0 Monday = 1 Tuesday = 2 Wednesday = 3 Thursday = 4 Friday = 5 Saturday = 6 )
2.3、預定義常量
Go語言預定義常量:true、false和iota,其中true、false是兩個bool型別的值,這個我們在后面的“資料型別”這一節會講到,
iota是一個可以被編譯器修改的常量,在每一個const關鍵字出現時,被重置為0,然后再下一個const出現之前,每出現一次iota,其所代表的數字會自動增加1,舉例:
package main
import (
"fmt"
)
func main() {
const (
Sunday = iota
Monday = iota
Tuesday = iota
Wednesday = iota
Thursday = iota
Friday = iota
Saturday = iota
)
const (
a = iota
b = iota
)
fmt.Println(Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)
fmt.Println(a, b)
}
以上代碼輸出:
0 1 2 3 4 5 6 0 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/38561.html
標籤:Go
