为什么有:=函数内的短分配?

Saa*_*aad 6 go

我不太明白短期作业的具体目的,

为什么这样做:

x:= 10
Run Code Online (Sandbox Code Playgroud)

当这也是可能的:

var x = 10
Run Code Online (Sandbox Code Playgroud)

是否有任何特定用例,其中短分配更方便谢谢

dsk*_*ner 13

if x, err := fn(); err != nil {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,变量被限制在if语句中.如果您尝试err在if语句之外访问,则它将不可用.同样地x.还有的地方维护的范围,想这可能是有用的各种情况,但我要说的使用:=是在给定的风格就像上面if,switch,for.

对于一些额外的背景,var也允许分组,就像使用一样import.

var (
    y = 1
    z = 2
)
Run Code Online (Sandbox Code Playgroud)

这推动了varvs 的使用案例:=进一步分开.