猿问

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

我不太了解短期作业的具体目的,

为什么这样做:

x:= 10

当这也是可能的时:

var x = 10

是否有任何特定的用例,其中短作业更方便


HUWWW
浏览 181回答 3
3回答

一只斗牛犬

if x, err := fn(); err != nil {    // do something}在上述情况下,变量被限制在if语句内。如果您尝试err在if语句之外进行访问,则该语句将不可用。同样适用于x。还有的地方维护的范围,想这可能是有用的各种情况,但我要说的使用:=是在给定的风格就像上面if,switch,for。对于其他一些背景,var还可以进行分组,就像使用一样import。var (    y = 1    z = 2)这将varvs的用例推得:=更远。

一只萌萌小番薯

我认为,这:=主要是作为一种方便的语法来接收函数调用的结果,在这种情况下,人们经常希望在声明新变量的同时重用现有变量:x, err := func1()if err != nil {    fmt.Fatal(err)}y, err := func2()if err != nil {    fmt.Fatal(err)}上面的代码之所以编译:=,是因为只要创建了至少一个新变量,就可以列出现有变量。尝试用替换y, err :=,var y, err =您将发现它无法编译。
随时随地看视频慕课网APP

相关分类

Go
我要回答