在go中创建一片切片

Creating a slice of slice of interfaces in go

我试图创建一个函数,将map的所有key, value作为slice的元组(其中每个元组都是{key, value})的slice返回。

代码如下:

1
2
3
func ReturnTuples(map_ map[interface{}]interface{}) [][]interface{} {
    toReturn := []([]interface{})
    ...

但我发现toReturn行有错误:

1
type [][]interface {} is not an expression

我应该如何声明接口切片?我认为这是唯一的办法。我试过不用括号,比如:

1
[][]interface{}

但它也不会起作用。

我试图在谷歌上搜索"golang slice of slice",但很少有东西出现。例如,我只找到了如何创建一个由uint8制成的简单模型,即:[][]uint8


您正在创建一个实例,而不是定义一个类型,因此需要额外的一对花括号来初始化变量:

1
toReturn := [][]interface{}{}

切片的元素类型是interface{},因此复合文本需要一对大括号:[]interface{}{}

如果是切片:

1
toReturn := [][]interface{}{}

或者在使用make()时,指定类型(而不是复合文字):

1
toReturn := make([][]interface{}, 0, len(map_))