这两种变量声明/初始化样式之间是否存在差异?
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"我的代码中的一致性陈述。
答案 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)
我总是尝试使用:=
语法。当您需要重构代码时,好处是巨大的。
您没有将变量的名称绑定到任何特定类型,只要您更改右侧的类型,变量就会自动推断出新类型。