= 与 := 的区别
· 阅读需 3 分钟
基础用法
=
赋值操作符
- 仅用于赋值,不声明变量
- 可以在任何代码快中使用
var a int
a = 100
:=
短变量声明
- 声明变量的同时赋值
- 只能在函数内部使用
- 在给多个变量的时候赋值的时候,至少要定义一个新变量
a := 100
a,b := 200,300
使用案例
闭包
func closureDemo(){
for i:=0; i< 3;i++ {
go func(){
fmt.Print(i," ") // 闭包
}()
}
}
这段代码可能会输出 3 3 3
,因为 i
是在闭包外部定义的变量,所有的 goroutine
都共享同一个 i
变量。
func closureDemo(){
for i:=0; i< 3;i++ {
val :=i
go func(){
fmt.Print(val," ")
}()
}
}