为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Golang 中初始化嵌套列表?

如何在 Golang 中初始化嵌套列表?

Go
慕雪6442864 2022-12-05 11:20:12
我有一个这样的嵌套结构:type Project struct {                   FolderStructure     []FolderItem     Description         string}type FolderItem struct {    SubFolderStructure  []SubFolderItem    Description         string}type SubFolderItem struct {    SubSubFolderStructure []SubSubFolderItem    Description           string}type SubSubFolderItem struct {    Content               string    Description           string}我想知道如何初始化它,否则invalid memory address or nil pointer dereference会被扔掉。提前致谢!
查看完整描述

1 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

最简单的初始化方法是创建多个实例作为变量,然后重用它们将值分配给嵌套结构。


这是工作示例:https ://go.dev/play/p/6p3VFljyqom和下面相同,这只是一种方法,感觉它是最简单的。


package main


import "fmt"


type Project struct {

    FolderStructure []FolderItem

    Description     string

}


type FolderItem struct {

    SubFolderStructure []SubFolderItem

    Description        string

}


type SubFolderItem struct {

    SubSubFolderStructure []SubSubFolderItem

    Description           string

}


type SubSubFolderItem struct {

    Content     string

    Description string

}


func main() {

    ssfi1 := SubSubFolderItem{

        "content1",

        "description1 - SubSubFolderItem",

    }

    ssfi2 := SubSubFolderItem{

        "content2",

        "description2 - SubSubFolderItem",

    }

    sfi := SubFolderItem{

        SubSubFolderStructure: []SubSubFolderItem{ssfi1, ssfi2},

        Description:           "description 1 - SubFolderItem",

    }

    fi := FolderItem{

        SubFolderStructure: []SubFolderItem{sfi, sfi},

        Description:        "description 1 - FolderItem",

    }

    p := Project{

        FolderStructure: []FolderItem{fi, fi},

        Description:     "description 1 - Project",

    }


    fmt.Println(ssfi1)

    fmt.Println(ssfi2)

    fmt.Println(sfi)

    fmt.Println(fi)

    fmt.Println(p)

}



查看完整回答
反对 回复 2022-12-05
  • 1 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号