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.go
a= 0
type if a= int
------------
b= 100
type if b= int
------------
c= 200
type if c= int
------------
d= 300
type if d= int
------------
e= 罗文猛
type if e= string
------------
f= 3.14
type if e= float64
------------
多行变量的声明
a1= 100 a2= 200
b1= 100 b2= 在声明多种不同数据类型的变量时不能有变量类型关键字
c1= 100 c2= true c3= 多行的变量声明
package main
import "fmt"
var x, y int
var ( //这种分解的写法,一般用于声明全局变量
a int
b bool
)
var c, d int = 1, 2
var 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
}