我有一个深层嵌套的结构,它包含两个切片,如下所示:
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。
答案 0 :(得分:7)
可以使用[]int{1,2,3}
符号,示例(解决您的问题):
&tar{foo: foo{bar: bar{v1: []int{2}, v2: []int{2}}}}
P.S。我强烈建议您阅读The Go Programming Language Specification和FAQ section。
答案 1 :(得分:1)
v1
和v2
是切片。您初始化这些内容的方式是使用make([]int, YOUR_INITIAL_SIZE)
而不是[2]
和[3]
。