跳到主要内容

变量

Go 变量有哪些声明形式?​

package main

func main() {
var a int // 声明 int 变量; 使用 int 零值 0
var b int = 2 // 声明变量; 显式指定类型和值
var c, d = 3, "go" // 声明多个变量; 根据初始值推导类型
e := true // 短变量声明; 只能用于函数内部
println(a, b, c, d, e)
}

变量声明块如何使用, 省略类型时如何推导?​

var (
name string // string 零值为空字符串
count int = 1 // 显式指定类型和值
ready = false // 省略类型; 由 false 推导为 bool
)

短变量声明 := 的规则与用途是什么?​

  • :=: 声明并初始化局部变量;
func main() {
x := 1 // 声明 x
x, y := 2, 3 // y 是新变量; x 被重新赋值
println(x, y)
}

变量赋值与多重赋值的求值顺序是什么?​

  • 多重赋值: 先计算右侧表达式与左侧索引、指针等定位表达式,再从左到右写入目标,因此可以直接交换两个变量;
func main() {
x := 1
x = 2 // 给已声明变量赋新值
a, b := 10, 20
a, b = b, a // 多重赋值; 右侧先求值再统一赋给左侧
println(x, a, b)
}