golang struct 默认值
在Go语言中,结构体(struct)是一种复合数据类型,用于存储不同数据类型的成员变量。当定义一个结构体类型时,每个成员变量自动初始化为对应数据类型的零值。但有时我们希望给结构体的成员变量设置默认值,本文将详细介绍如何设置结构体的默认值。
设置结构体默认值的方法
方法一:使用结构体字面量
通过结构体字面量的方式,我们可以在定义结构体变量的同时设置成员变量的默认值。下面是一个示例:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func main() {
p := Person{Name: "Alice", Age: 30}
fmt.Println(p.Name, p.Age)
}
运行以上代码,输出为:
Alice 30
方法二:使用构造函数
为结构体定义一个构造函数,可以在创建结构体变量时设置默认值。下面是一个示例:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func NewPerson(name string, age int) *Person {
return &Person{Name: name, Age: age}
}
func main() {
p := NewPerson("Bob", 25)
fmt.Println(p.Name, p.Age)
}
运行以上代码,输出为:
Bob 25
方法三:使用方法设置默认值
为结构体定义一个方法,可以在创建结构体变量时设置默认值。下面是一个示例:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func (p *Person) SetDefaults() {
if p.Name == "" {
p.Name = "Unknown"
}
if p.Age == 0 {
p.Age = 18
}
}
func main() {
p := &Person{}
p.SetDefaults()
fmt.Println(p.Name, p.Age)
}
运行以上代码,输出为:
Unknown 18
总结
通过结构体字面量、构造函数或方法设置默认值,可以在创建结构体变量时方便地初始化成员变量。选择合适的方法根据实际需求来决定,让代码更加清晰和易于维护。