【发布时间】:2015-10-13 10:25:30
【问题描述】:
在 Go 中,当一个变量被声明时,它会按照规范中的描述用零值初始化。
http://golang.org/ref/spec#The_zero_value
但是,如果需要使用默认值初始化变量,则使用此属性并且不显式初始化变量是否是一种良好的编码习惯。
例如在下面的例子中
http://play.golang.org/p/Mvh_zwFkOu
package main
import "fmt"
type B struct {
isInit bool
Greeting string
}
func (b *B) Init() {
b.isInit = true
b.Greeting = "Thak you for your time"
}
func (b *B) IsInitialized() bool {
return b.isInit
}
func main() {
var b B
if !b.IsInitialized(){
b.Init()
}
fmt.Println(b.Greeting)
}
程序依赖 boolean 的默认值为 false。
【问题讨论】:
-
另外,如果你运行 golint,它会建议你放弃额外的分配,因为它是默认值。这是开始使用 Go 风格的好工具。
标签: go default default-value