如何在接口声明[golang]中扩展数组?

时间:2019-08-01 13:37:56

标签: go

我有这个函数声明,我想返回接口数组。
spread(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 }

2 个答案:

答案 0 :(得分:1)

例如,

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函数。

答案 1 :(得分:0)

在我的情况下,[]interface{} 输入输出相同。
所以只要返回任何东西就可以了