首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GoLang Level3嵌入式结构初始化

GoLang Level3嵌入式结构初始化
EN

Stack Overflow用户
提问于 2022-08-14 09:52:57
回答 1查看 54关注 0票数 0

我是刚开始高朗开发的。我试图初始化一个具有3级嵌入式结构的结构。我可以创建到2级,但是当我尝试使用第3级时,它会给我这个编译时错误。

复合文字中的缺失类型

这是可用的试用代码。请帮助/建议一个很好的方法来实现同样的目标。

在main.go中,无法初始化a2变量。

代码语言:javascript
复制
package main

import (
    "structpackage"
    cfmt "basic/utils"
    "fmt"

)

type p StrPackage
type n NestedStruct

type Address struct {
    Name         string
    city         string
    Pincode      int
    StrPackage   p // embedded struct
    NestedStruct n // nested struct embedded in Address struct
}

func main() {

    
    // Declaring and initializing a struct using a struct literal
    a1 := Address{Name: "Akshay", city: "Dehradun", Pincode: 3623572, StrPackage: p{14, "Software engineer"}} // embedded struct implementation

    /** * embedded struct implementation Start  **/

    a2 := Address{Name: "Akshay", city: "Dehradun", Pincode: 3623572, NestedStruct: n{Designation: "Software engineer", S: {Age: 12, Occuption: "sfdsf"}}} // Naming fields while initializing a struct

    fmt.Println("Address2: ", a2)
}

structpackage.go

代码语言:javascript
复制
package structpackage

type StrPackage struct {
    Age       int
    Occuption string
}

type NestedStruct struct {
    Designation string
    S           StrPackage
}
EN

回答 1

Stack Overflow用户

发布于 2022-11-22 03:46:08

注意,Strpackage类型的对象需要动态构造并分配给NestedStruct.S。

代码语言:javascript
复制
a2 := Address{
         Name: "Akshay", 
         city: "Dehradun", 
         Pincode: 3623572, 
         NestedStruct: n{
            Designation: "Software engineer", 
            S: structpackage.StrPackage{
                  Age: 12, Occuption: 
                  "sfdsf"
            }
         }
     }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73350654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档