Golang - 嵌套结构中的切片

时间:2014-02-23 19:32:16

标签: struct go slice

我有一个深层嵌套的结构,它包含两个切片,如下所示:

package main

import "fmt"

type bar struct {
    v1 []int
    v2 []int
}

type foo struct{ bar bar }
type tar struct{ foo foo }

func main() {
    f := &tar{foo: foo{bar: bar{v1: [2], v2: [3]}}}
    fmt.Printf("Hello, playground %s", f)
}

如何初始化两个切片?或者我如何使这段代码有效?

以下是Golang Play:http://play.golang.org/p/zLutROI4YH

2 个答案:

答案 0 :(得分:7)

可以使用[]int{1,2,3}符号,示例(解决您的问题):

&tar{foo: foo{bar: bar{v1: []int{2}, v2: []int{2}}}}

P.S。我强烈建议您阅读The Go Programming Language SpecificationFAQ section

答案 1 :(得分:1)

v1v2是切片。您初始化这些内容的方式是使用make([]int, YOUR_INITIAL_SIZE)而不是[2][3]