我不太了解短期作业的具体目的,为什么这样做:x:= 10当这也是可能的时:var x = 10是否有任何特定的用例,其中短作业更方便
3 回答
一只斗牛犬
TA贡献1784条经验 获得超2个赞
if x, err := fn(); err != nil {
// do something
}
在上述情况下,变量被限制在if语句内。如果您尝试err在if语句之外进行访问,则该语句将不可用。同样适用于x。还有的地方维护的范围,想这可能是有用的各种情况,但我要说的使用:=是在给定的风格就像上面if,switch,for。
对于其他一些背景,var还可以进行分组,就像使用一样import。
var (
y = 1
z = 2
)
这将varvs的用例推得:=更远。
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
我认为,这:=主要是作为一种方便的语法来接收函数调用的结果,在这种情况下,人们经常希望在声明新变量的同时重用现有变量:
x, err := func1()
if err != nil {
fmt.Fatal(err)
}
y, err := func2()
if err != nil {
fmt.Fatal(err)
}
上面的代码之所以编译:=,是因为只要创建了至少一个新变量,就可以列出现有变量。尝试用替换y, err :=,var y, err =您将发现它无法编译。
- 3 回答
- 0 关注
- 180 浏览
添加回答
举报
0/150
提交
取消