Golang将map [string] * [] interface {}转换为其他类型的切片或数组

时间:2017-08-15 01:43:12

标签: go

我有以下

var abc = function() {
    return {
      log : function() {
        console.log(this.val);
      }
    };
}

稍后,我希望能够从此地图中抓取type Results map[string]*[]interface{} var users *[]models.User users = getUsers(...) results := Results{} results["users"] = users 并将其投放到users

我很难找到正确的方法来做到这一点。我喜欢这样做,但显然不起作用。

*[]models.User

关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:2)

除了转换之外,以下是对您的代码的一些评论(最后也会提到)。

  • 在这种情况下,没有必要使用指向切片的指针,因为切片只是指向底层数组的标头值。因此切片值将作为对底层数组的引用。
  • 由于interface{}变量可以引用任何类型的值(包括切片),因此无需在interface{}中使用Result切片,您只需将其定义为{ {1}}。

话虽如此,修改后的代码如下所示:

type Results map[string]interface{}

你可以在这个游乐场找到完整的代码:

https://play.golang.org/p/zL4IkWy97j