go,定义结构体时可以给默认值吗?
比如:
type Person struct { name string = “zhangsan”
age int = 20
}
类似这样的定义方式可以吗?
回答:
题主说的默认值
是不支持的,不过可通过函数
来实现,比如:
package mainimport "fmt"
type Person struct {
Name string
Age int
}
func NewDefaultPerson() Person {
return Person{
Name: "张三",
Age: 20,
}
}
func NewPerson(name string, age int) Person {
return Person{
Name: name,
Age: age,
}
}
func main() {
person1 := NewDefaultPerson()
person2 := NewPerson("lisi", 30)
fmt.Println(person1, person2)
}
回答:
可以定义,但是如果定义就赋初始值每次使用都需要再定义一次,跟临时变量是一样的道理。
package mainimport "fmt"
func main() {
// 定义一个结构体, 之后可以各种赋值操作和实现接口
type Person struct {
Name string
Age int
}
// 基于已有结构体类型Person, 可以派生出很多实际的值
p1 := Person{
Name: "李四",
Age: 18,
}
fmt.Println(p1)
// 结构体定义时就赋初始值, 那么这个结构体只能用一次, 就是你定义的变量person, 之后就不能复用了
p2 := struct {
Name string
Age int
}{
"张三", 20,
}
fmt.Println(p2)
}
回答:
对于楼主这个要求,我觉得你可以在数据库层这这个操作
以上是 go,定义结构体时可以给默认值吗? 的全部内容, 来源链接: utcz.com/p/183076.html