在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
}

可以看到,通过定义一个新的结构体类型,并使用匿名字段的方式将原结构体类型嵌入到新的结构体类型中,就可以实现在结构体中新增属性的效果。

golang 结构体中新增属性不报错

原文地址: https://www.cveoy.top/t/topic/i4iv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录