如何在 Go 中定义包含 int 的切片和字符串的切片?

How do I define a slice of slices containing an int and a slice of strings in Go?

看起来像这样:

[[1,["a", "b", "c"]], [2,["z", "x", "y"]]]

直觉上我会做类似 [][]int[]string 的事情,但那是无效的:syntax error: unexpected [, expecting semicolon or newline or },那么我该怎么做呢?

T 切片:var x []T

一片一片的T:var x [][]T

T1 和 T2 的切片:您需要将 T1 和 T2 放入结构中。

So for: slice of (slices containing { int and slice of strings } )。 它通常是这样的:

type foo struct {
    i int
    s []string
}
var x [][]foo

但是你的例子看起来更像是一个 []foo:

bar := []foo{
    {1, []string{"a", "b", "c"}},
    {2, []string{"z", "x", "y"}},
}
fmt.Println("bar:", bar)
// bar: [{1 [a b c]} {2 [z x y]}]

Run on Playground(还包括更多示例)