doujianqin5172
2019-08-01 13:37
浏览 20
已采纳

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

i have this function declaration and i want return array of interface.
spread(1,2,3) => [4,5,6].
i also searched any place like play.golang,other stackoverflow go tags but nothing found

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
}

the error i got is : syntax error: unexpected ..., expecting comma or }

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dorv56831 2019-08-05 22:58
    已采纳

    in my case []interface{} input is same as output.
    so just return any thing as array is ok

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • dptpn06684 2019-08-01 13:51

    For example,

    package main
    
    import (
        "fmt"
    )
    
    func spread(a ...interface{}) []interface{} {
        return a
    }
    
    func main() {
        fmt.Println(spread(1, 2, 3))
    }
    

    Playground: https://play.golang.org/p/Bqgu_A1BCti

    Output:

    [1 2 3]
    

    An optimizing compiler may inline the spread function.

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题