go 語言變量名由字符、數字、下劃線組成,其中首字符不能為數字。其變量名命名規則和C/C++約定一樣。
go 語言聲明變量方式有三種,也可以簡單說有2種,分別是關鍵字 var 和 :=
使用var關鍵字指定變量類型
var 變量名 類型
例如定義一個string 類型的name
var name string
也可以一次聲明多個
var 變量名1 變量名2 變量名3 類型
例如定義一個 string 類型的name,mail, image
var name, mail, image string
使用var關鍵字不指定變量類型,通過初始化來讓編譯器默認推導
var name = value
例如:
package main
import "fmt"
func main() {
var name = "zhangsan"
var age = 12
fmt.Println(reflect.TypeOf(name))
fmt.Println(reflect.TypeOf(age))
}
輸出
string
int
var 聲明name 變量直接初始化為字符串 "zhangsan" var 聲明age 變量直接初始化為int 類型值為12
使用快速變量聲明 :=
name := value
此種方法 省略 var, := 左側如果不是新的變量名,就產生編譯錯誤。而且此種聲明方法
只能在函數內使用,如果在函數外使用,將會出現編譯錯誤。同樣根據初始化變量的類型,可以自動推導出變量name的類型
例如:
func main() {
name := "zhangsan"
age := 12
fmt.Println(reflect.TypeOf(name))
fmt.Println(reflect.TypeOf(age))
}
輸出:
string
int
同樣支持多種平行聲明,上面的兩行聲明可以簡寫為一行
name,age := "zhangsan", 12
總結:
var name type 此種聲明可以不用初始化,而var name = value 和 name := value 必須初始化從而自動推導出name的類型, 而且 var name = value 和 name := value 方式支持平行不同類型變量聲明 而var name type 方式不支持平行多種不同類型聲明。並且 := 的方式只能在函數內使用。