go,定义结构体时可以给默认值吗?

比如:

type Person struct {  

name string = “zhangsan”

age int = 20

}

类似这样的定义方式可以吗?

回答:

题主说的默认值是不支持的,不过可通过函数来实现,比如:

package main

import "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 main

import "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

回到顶部