登录
首页 >  Golang >  Go问答

GoLang Level3 嵌入式结构体初始化

来源:stackoverflow

时间:2024-04-14 18:09:36 160浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《GoLang Level3 嵌入式结构体初始化》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

我是 golang 开发新手。我试图初始化一个具有 3 级嵌入结构的结构。我可以创建 2 个级别,但是当我尝试使用第 3 级时,它给了我这个编译时错误。

复合文字中缺少类型

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

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

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

package structpackage

type StrPackage struct {
    Age       int
    Occuption string
}

type NestedStruct struct {
    Designation string
    S           StrPackage
}

正确答案


请注意,strpackage 类型的对象需要动态构造并分配给 nestedstruct.s

a2 := Address{
         Name: "Akshay", 
         city: "Dehradun", 
         Pincode: 3623572, 
         NestedStruct: n{
            Designation: "Software engineer", 
            S: structpackage.StrPackage{
                  Age: 12, Occuption: 
                  "sfdsf"
            }
         }
     }

今天关于《GoLang Level3 嵌入式结构体初始化》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>