package main
import "fmt"
func main() {
// 1.声明未初始化的变量
// var 变量名 变量类型
var a int
fmt.Println("a", a)
// 2.批量声明未初始化的变量
var (
b string
c float32
d []float64
e func() bool
f struct {
x int
y bool
}
)
//未初始化变量的默认值有如下特点:
//• 整型和浮点型变量默认值:0。
//• 字符串默认值为空字符串。
//• 布尔型默认值为false。
//• 函数、指针变量、切片默认值为nil。
fmt.Println("b", b)
fmt.Println("c", c)
fmt.Println("d", d)
fmt.Println("e", e)
fmt.Println("f", f)
// 3.声明初始化变量
// 方式1, var 变量名 变量类型 = 表达式
// 方式2, 变量名 := 表达式
// 方式3, var 变量名 = 表达式
var m string = "你好"
n := 123
var p = 3.14
fmt.Println(m)
fmt.Println(n)
fmt.Println(p)
/*
使用 := 赋值操作符可以高效地创建一个新的变量,称为初始化声明。声明语句省略了 var 关键字,
变量类型将由编译器自动推断。这是声明变量的首选形式,但是它只能被用在函数体内,
而不可以用于全局变量的声明与赋值。该变量名必须是没有定义过的变量,若定义过,将发生编译错误
*/
// 变量多重赋值
var g int = 10
var h int = 8
fmt.Println(g, h)
g, h = h, g
fmt.Println(g, h)
}