在Go语言中,当变量被声明时,它会被初始化为零值,如规范所述。
程序依赖于布尔类型的默认值为 false。
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)
}
程序依赖于布尔类型的默认值为 false。