首页 > 解决方案 > 扩展一个结构以添加另一个结构

问题描述

我有一个结构:

type User struct {
   Name string
   Age  int
}

另一个结构为:

type Info struct {
   Address string
}

我需要扩展Info结构以具有结构中的字段User

通过获取每个字段的标签和值,该Info结构将传递给一个在结构上工作的函数。

我怎样才能达到同样的效果?因此,在传递给函数时,Name, Age, Address会使用所有值()。

我在这里试过:GoPlay,但它不起作用。

标签: gostruct

解决方案


您可以将用户嵌入到信息中,如下所示

type Info struct {
    Address string
    User
}

完整的代码示例如下

package main

import "fmt"

type User struct {
    Name string
    Age  int
}

type Info struct {
    Address string
    User
}

func main() {
    info := Info{
        Address: "abc",
        User: User{
            Name: "user",
            Age:  25,
        },
    }

    printInfo(info)
}

func printInfo(info Info)  {
    fmt.Println("name - ",info.Name)
    fmt.Println("age - ",info.Age)
    fmt.Println("address - ",info.Address)
}

操场上奔跑


推荐阅读