Go 自定义结构体数据字段的默认值

Go 自定义结构体数据字段的默认值,创建数据结构时,自定义数据字段的默认值是很有必要的。默认情况下,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"))
 }

运行结果如下:
Go 自定义结构体数据字段的默认值

酷客教程相关文章:

赞(0)

评论 抢沙发

评论前必须登录!