2、变量的声明
声明变量的一般形式是使用 var 关键字
变量声明
第一种,指定变量类型,声明后若不赋值,使用默认值0。
var v_name v_typev_name = valuepackage mainimport "fmt"func main() {var a intfmt.Printf(" = %d\n", a)}$go run test.goa = 0
第二种,根据值自行判定变量类型。
var v_name = value
第三种,省略var, 注意 :=左侧的变量不应该是已经声明过的,否则会导致编译错误。
v_name := value// 例如var a int = 10var b = 10c : = 10
例如:
package mainimport "fmt"func main() {//第一种 使用默认值var a intfmt.Printf("a = %d\n", a)//第二种var b int = 10fmt.Printf("b = %d\n", b)//第三种 省略后面的数据类型,自动匹配类型var c = 20fmt.Printf("c = %d\n", c)//第四种 省略var关键字d := 3.14fmt.Printf("d = %f\n", d)}
多变量声明
package mainimport "fmt"var x, y intvar ( //这种分解的写法,一般用于声明全局变量a intb bool)var c, d int = 1, 2var e, f = 123, "liudanbing"//这种不带声明格式的只能在函数体内声明//g, h := 123, "需要在func函数体内实现"func main() {g, h := 123, "需要在func函数体内实现"fmt.Println(x, y, a, b, c, d, e, f, g, h)//不能对g变量再次做初始化声明//g := 400_, value := 7, 5 //实际上7的赋值被废弃,变量 _ 不具备读特性//fmt.Println(_) //_变量的是读不出来的fmt.Println(value) //5}
