为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在函数内部使用:=短赋值?

为什么在函数内部使用:=短赋值?

Go
HUWWW 2021-05-14 13:09:19
我不太了解短期作业的具体目的,为什么这样做: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的用例推得:=更远。


查看完整回答
反对 回复 2021-05-17
?
一只萌萌小番薯

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 =您将发现它无法编译。


查看完整回答
反对 回复 2021-05-17
  • 3 回答
  • 0 关注
  • 180 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信