2、变量的声明
四种变量的声明方式
package main // 程序的包名import "fmt" /* 四种变量的声明方式*/func main() { // 方法1 声明一个变量, 默认值为0 var a int fmt.Println("a=", a) fmt.Printf("type if a= %T\n", a) fmt.Println("------------") // 方法2 声明一个变量, 初始化一个值 var b int = 100 fmt.Println("b=", b) fmt.Printf("type if b= %T\n", b) fmt.Println("------------") // 方法3 在初始化是省略数据类型, 通过值自动匹配当前的变量的数据类型 var c = 200 fmt.Println("c=", c) fmt.Printf("type if c= %T\n", c) fmt.Println("------------") // 方法4 (常用方法) 省去 var 关键字, 直接自动匹配 // 不能用于全局变量声明 d := 300 fmt.Println("d=", d) fmt.Printf("type if d= %T\n", d) fmt.Println("------------") e := "罗文猛" fmt.Println("e=", e) fmt.Printf("type if e= %T\n", e) fmt.Println("------------") f := 3.14 fmt.Println("f=", f) fmt.Printf("type if e= %T\n", f) fmt.Println("------------") // 多个变量声明 fmt.Println("多行变量的声明") var a1, a2 int = 100, 200 fmt.Println("a1=", a1, "a2=", a2) var b1, b2 = 100, "在声明多种不同数据类型的变量时不能有变量类型关键字" fmt.Println("b1=", b1, "b2=", b2) // 多行的变量声明 var ( c1 int = 100 c2 bool = true c3 string = "多行的变量声明" ) fmt.Println("c1=", c1, "c2=", c2, "c3=", c3)}
➜ 02 go run main.goa= 0type if a= int------------b= 100type if b= int------------c= 200type if c= int------------d= 300type if d= int------------e= 罗文猛type if e= string------------f= 3.14type if e= float64------------多行变量的声明a1= 100 a2= 200b1= 100 b2= 在声明多种不同数据类型的变量时不能有变量类型关键字c1= 100 c2= true c3= 多行的变量声明
package mainimport "fmt"var x, y intvar ( //这种分解的写法,一般用于声明全局变量 a int b 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}