Go 自定义结构体数据字段的默认值,创建数据结构时,自定义数据字段的默认值是很有必要的。默认情况下,Go给数据字段指定相应数据类型的零值。下表列出了这些零值。
创建结构体时,如果没有给其数据字段指定值,它们将为表所示的零值。Go语言没有提供自定义默认值的内置方法,但可使用构造函数来实现这个目标。构造函数创建结构体,并将没有指定值的数据字段设置为默认值。
type Alarm struct {
Time string
Sound string
}
func NewAlarm(time string) Alarm {
a := Alarm{
Time: time,
Sound: true,
}
return a
}
这里不直接创建结构体Alarm,而是使用函数NewAlarm来创建,从而让字段Sound包含自定义的默认值。请注意,这只是一种技巧,而并非Go语言规范的组成部分。如果您直接创建结构体Alarm的实例,且没有给Sound赋值,它将包含默认值” “。通过使用构造函数来创建这种结构体的实例时,字段Sound的默认值将为Klaxon。请注意,可轻松地修改字段Sound的值,因此这种方法创建的是初始默认值,而不是常量值。下面程序演示了如何将字段初始化为自定义默认值。
package main
import (
"fmt"
)
type Alarm struct {
Time string
Sound bool
}
func NewAlarm(time string) Alarm {
a := Alarm{
Time: time,
Sound: true,
}
return a
}
func main() {
fmt.Printf("%+v\n", NewAlarm("07:00"))
}
运行结果如下:
酷客教程相关文章:
评论前必须登录!
注册