This question already has answers here:
Why there are two ways of declaring variables in Go, what's the difference and which to use?

(1 个回答)



var vs := in Go

(3 个回答)


2年前关闭。




下面两个例子有什么区别吗?
type Example struct {}

func main() {
  e := Example{}
}

对比
type Example struct {}

func main() {
  var e Example
}

有更好的吗?

谢谢!

最佳答案

可能值得注意:

当您需要创建具有定义值的变量时,请使用 :=

number := 12
obj := SomeStruct{name: "user"}
slice := []string{"a", "b", "c"}
someNilPointerData := (*SomeStruct)(nil)

当您需要定义一个没有任何初始化的变量时使用 var 关键字,因此将在其上使用零值。
var a int // zero value of int is 0
var mut sync.Mutex
var result []map[string]interface{}

使用 var 关键字的另一个优点,在单个语句中创建多个相同类型的变量。
var result1, result2, result3, result4 []map[string]interface{}
var 关键字还可用于将某些文字值存储在具有不同数据类型的变量中。
// store string literal value in interface{} variable
var anyValue interface{} = "hello world"

// store int literal value in float64 variable
var otherValue float64 = 12

关于go - 何时使用 var 或 := in Go?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53404305/

10-16 23:01