在 Go 中,= 和 := 都可以用于变量赋值,但它们有着不同的作用和用法。
= 是一个简单的赋值操作符,用于将右侧的值赋给左侧的变量。如果变量不存在,则会创建一个新的变量。例如:
var x int
x = 1
fmt.Println(x) // 输出 1
而 := 则是一个短变量声明操作符,用于声明和初始化一个新的变量,并根据右侧的值推断其类型。它只能用于在函数内部声明变量。例如:
x := 1
fmt.Println(x) // 输出 1
在上面的示例中,x 是一个新的变量,使用 := 进行声明和初始化。
下面是一个使用 = 和 := 的示例,展示它们之间的差异:
func main() {
x := 1 // 短变量声明
x = 2 // 简单的赋值
y := "hello"
z, y := 3, "world" // 多变量声明和赋值
fmt.Println(x) // 输出 2
fmt.Println(y) // 输出 world
fmt.Println(z) // 输出 3
}
在这个示例中,我们使用 := 声明并初始化变量 x 和 y,然后使用 = 给 x 赋一个新值。在最后一行,我们使用 := 声明和初始化变量 z,同时重新赋值变量 y。