Go 語言變量名由字母、數字、下劃線組成,其中首個字符不能為數字。Go 語言中關鍵字和保留字都不能用作變量名。Go 語言中的變量需要聲明后才能使用,同一作用域內不支持重復聲明。 并且 Go 語言的變量聲明后必須使用。
1. var 聲明變量
在 Go 語言中,最基本的變量聲明方式是使用 var 關鍵字,聲明語法是 var 變量名 類型。
var name string
這種形式聲明了一個名為 name 的字符串類型變量。聲明后可以賦值:
var name string
name = "Go語言"
也可以聲明時直接初始化:
var name string = "Go語言"
2.??一次定義多個變量
Go 語言允許一次聲明多個變量:
var a, b, c int
這等同于:
var a int
var b int
var c int
多個變量可以在同一行聲明并初始化:
var a, b, c = 1, 2, 3
3. 批量聲明變量的時候指定類型
當需要聲明多個不同類型的變量時,可以使用批量聲明的方式:
var (name stringage intisOk bool
)
也可以為批量聲明的變量指定相同的類型:
var (x, y, z inta, b, c string
)
4. 變量的初始化
在 Go 語言中,變量聲明時可以同時初始化:
var name string = "Alice"
var age int = 25
如果初始化值存在,可以省略類型,Go 會根據初始值自動推斷類型:
var name = "Alice" // 自動推斷為string類型
var age = 25 // 自動推斷為int類型
5. 類型推導
Go 語言的類型推導功能可以讓我們在聲明變量時省略類型:
var name = "Bob" // 自動推導為string類型
var age = 30 // 自動推導為int類型
var pi = 3.14 // 自動推導為float64類型
Go 會根據右側的值自動推導出最合適的類型。
6. 短變量聲明法
在函數內部,可以使用更簡潔的短變量聲明方式。
name := "Charlie"
age := 35
這種方式會隱式聲明變量并賦予初始值,類型由初始值自動推導。短變量聲明是 Go 語言中最常用的變量聲明方式。
注意:短變量聲明只能在函數內部使用,不能在包級別使用。
7. 匿名變量
Go 語言支持匿名變量,也稱為空白標識符,用下劃線?_
?表示:
_, b := 5, 7
匿名變量不占用命名空間,不會分配內存,通常用于忽略不需要的返回值。例如:
result, _ := someFunction() // 忽略第二個返回值
8. 注意事項
1. 變量必須先聲明后使用:Go 語言不允許使用未聲明的變量;
2. 變量不能重復聲明:在相同作用域內,變量名不能重復聲明;
3. 短變量聲明的特殊規則:
(1). 短變量聲明至少需要聲明一個新變量;
(2). 可以這樣使用:a, b := 1, 2?或?a, b := someFunction();
(3). 但不能全是已聲明的變量:a, b := 1, 2?后不能?a, b := 3, 4;
4. 零值機制:Go 語言中聲明的變量會自動初始化為其類型的零值:
(1). 數值類型為?0;
(2). 布爾類型為?false;
(3). 字符串為 " "(空字符串);
(4). 指針、函數、接口、slice、channel、map 為 nil;
5. 作用域規則:變量只在聲明它的代碼塊內有效;
6. 包級變量:在函數外聲明的變量是包級變量,作用域是整個包;
7. 變量命名:Go 語言推薦使用駝峰命名法,且盡量使用有意義的名稱;
通過掌握這些變量聲明方式,可以更靈活地在 Go 程序中使用變量,編寫出更清晰、更高效的代碼。