golang 结构体中新增属性不报错
在Go语言中,结构体是一种复合数据类型,由零个或多个任意类型的属性组成。一旦结构体类型定义完成后,无法直接新增属性。如果你需要在结构体中新增属性,可以通过定义一个新的结构体类型来实现。
例如,假设有以下结构体类型:
type Person struct {
Name string
Age int
}
如果想要新增一个属性"Gender",可以定义一个新的结构体类型:
type PersonWithGender struct {
Person
Gender string
}
在这个新的结构体类型中,使用了匿名字段的方式将原结构体类型嵌入到新的结构体类型中,从而达到新增属性的效果。
使用示例:
package main
import "fmt"
type Person struct {
Name string
Age int
}
type PersonWithGender struct {
Person
Gender string
}
func main() {
p := PersonWithGender{
Person: Person{
Name: "John",
Age: 30,
},
Gender: "Male",
}
fmt.Println(p.Name) // 输出: John
fmt.Println(p.Age) // 输出: 30
fmt.Println(p.Gender) // 输出: Male
}
可以看到,通过定义一个新的结构体类型,并使用匿名字段的方式将原结构体类型嵌入到新的结构体类型中,就可以实现在结构体中新增属性的效果。
原文地址: https://www.cveoy.top/t/topic/i4iv 著作权归作者所有。请勿转载和采集!