05 var 声明变量
1 基本格式
// 类型放在名字的后面,行尾无需分号
var name string
var age int
var isOk bool
=
2 批量声明
var (
a string
b int
c bool
d float32
)
=
3 变量初始化
Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作
变量若不赋值,则值为该类型的默认值
各类型的初始化默认值:
- 整型和浮点型变量的默认值为
【0】
- 字符串变量的默认值为
【空字符串】
- 布尔型变量默认为
【false】
- 切片、函数、指针变量的默认为
【nil】
声明同时指定初始值 =
可在声明变量的时候为其指定初始值:
var 变量名 类型 = 表达式
var name string = "Q1mi"
var age int = 18
// 同时多个
var name, age = "Q1mi", 20
声明时省略类型
可省略类型(此时会自动根据赋值来推导类型)
var name = "Q1mi"
var age = 18
=
4 短变量声明
在函数内部:短变量声明【使用 :=
】
package main
import (
"fmt"
)
var m = 100 // 全局变量 m
func main() {
n := 10
m := 200 // 此处表示声明局部变量 m 关键点:仅在函数内部有效
fmt.Println(m, n)
}
=
5 匿名变量
多重赋值时忽略其中某个值(使用下划线占位)
匿名变量不占用命名空间,不会分配内存,所以匿名变量不存在重复声明的问题
- 函数外的每个语句都必须以关键字开始(
var、const、func
等) :=
不能用在函数外_
多用于占位,表示忽略值
func foo() (int, string) {
return 10, "Q1mi"
}
func main() {
x, _ := foo()
_, y := foo()
fmt.Println("x=", x)
fmt.Println("y=", y)
}
// 赋值结果:
x=10
y=Q1mi