首页 > 解决方案 > 如何在接口声明[golang]中传播数组?

问题描述

我有这个函数声明,我想返回接口数组。
传播(1,2,3)=> [4,5,6]。
我也搜索过任何类似的地方play.golangother stackoverflow go tags但没有找到

func spread2(a ...interface{}) []interface{} {
        a:=[]int{4,5,6}
        return []interface{}{a}//[[4,5,6]] NO

        return []interface{}{a...} //[4,5,6] YES,i want this; 
                                   //but got error
}

我得到的错误是: syntax error: unexpected ..., expecting comma or }

标签: go

解决方案


例如,

package main

import (
    "fmt"
)

func spread(a ...interface{}) []interface{} {
    return a
}

func main() {
    fmt.Println(spread(1, 2, 3))
}

游乐场: https: //play.golang.org/p/Bqgu_A1BCti

输出:

[1 2 3]

优化编译器可以内联spread函数。


推荐阅读