为什么简写语法声明/ init变量?

时间:2014-07-18 09:50:13

标签: go

这两种变量声明/初始化样式之间是否存在差异?

package main

import "fmt"

func main() {

    var a = "I am a string"        // Declare + init (infer)
    fmt.Println(a)

    b := "I am a string"           // Declare + init (shorthand)
    fmt.Println(b)
}

我没有看到速记语法的附加价值,并倾向于使用" var"我的代码中的一致性陈述。

2 个答案:

答案 0 :(得分:5)

我只在必要时使用var,例如:

1)全局变量

2)if语句如:

var err error
if x == nil {
    err = errors.New("x is nil")
} else if y == nil {
    err = errors.New("y is nil")
}

...

答案 1 :(得分:5)

我总是尝试使用:=语法。当您需要重构代码时,好处是巨大的。

您没有将变量的名称绑定到任何特定类型,只要您更改右侧的类型,变量就会自动推断出新类型。