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

我有一个这样的嵌套结构:


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会被扔掉。提前致谢!


慕雪6442864
浏览 133回答 1
1回答

FFIVE

最简单的初始化方法是创建多个实例作为变量,然后重用它们将值分配给嵌套结构。这是工作示例:https ://go.dev/play/p/6p3VFljyqom和下面相同,这只是一种方法,感觉它是最简单的。package mainimport "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)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go