以下两个示例之间是否有区别?
type Example struct {}
func main() {
e := Example{}
}
vs。
type Example struct {}
func main() {
var e Example
}
有没有更好的选择?
谢谢!
答案 0 :(得分:3)
可能值得注意:
需要创建带有已定义值的变量时,请使用:=
。
number := 12
obj := SomeStruct{name: "user"}
slice := []string{"a", "b", "c"}
在需要定义变量而无需初始化时使用var
关键字,因此将在其上使用零值。
var a int // the default value will be the zero value of int, which is 0
var mut sync.Mutex
var result []map[string]interface{}
使用var
关键字还有另一个优点,例如我们可以在一行中创建一种类型的多个变量。
var result1, result2, result3, result4 []map[string]interface{}
答案 1 :(得分:1)
var
主要用于定义共享范围内的变量。例如,
var something string
func init() {
something = "Hello world!"
}
func main() {
fmt.Println(something)
}
答案 2 :(得分:1)
这里没有什么不同,只是一种习惯。我经常使用var e Example
。
:=
不能使用外部功能,而var
可以使用外部功能。