Go 語言變量名由字母、數字、下劃線組成,其中首個字符不能為數字。
## 變量的聲明
#### 使用 var 關鍵字(函數內外都可使用)
```
// 只聲明變量不賦值需要提供變量類型,默認值為0
1. var a, b int
// 字符串不能用單引號,可以不提供變量類型
2. var a, b string = "hello", "world"
// 省略變量的類型,根據值自行判定變量類型。
3. var a = 10
// 同時聲明多種類型的變量
4. var (
a int,
b string,
c bool = true,
d = "hi"
)
```
如果聲明了一個變量沒有賦值,則該變量默認為零值,零值就是變量沒有做初始化時系統默認設置的值。
- 數值類型(包括complex64/128)為 0
- 布爾類型為 false
- 字符串為 ""(空字符串)
- 以下幾種類型為 nil:
```
var a *int
var a []int
var a map[string] int
var a chan int
var a func(string) int
var a error // error 是接口
```
#### 使用 := 簡短聲明(僅函數內部可用)
- 使用 := 聲明變量不能提供數據類型
- := 左側如果沒有聲明新的變量,就產生編譯錯誤
```
1. a := 1
2. a, b := 2, "hi" // 同時聲明并賦值多個變量
var intVal int
intVal :=1 // 這時候會產生編譯錯誤,因為 intVal 已經聲明,不需要重新聲明
```