go - 如何在接口声明[golang]中传播数组?
问题描述
我有这个函数声明,我想返回接口数组。
传播(1,2,3)=> [4,5,6]。
我也搜索过任何类似的地方play.golang
,other 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 }
解决方案
例如,
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
函数。
推荐阅读
- java - 你可以检查android代码中的firebase服务器问题吗?
- python - 如何使用 for 循环将数据有效地追加到 pandas 数据帧中
- python - 海龟图形 goto() 无法正常工作
- c# - 在 Xamarin Android 中设置布局背景 - 覆盖暗模式
- node.js - 使用 mongoose / mongodb 的特定聚合查询
- sql - 删除重复的反向对
- logstash - 写入 Logstash 服务器端点
- c++ - 布尔值未正确返回?
- mongodb - 无法使用本地 pymongo 客户端访问 mongodb-replicaset
- amazon-web-services - 使用 Docker 和 AWS-SAM 部署 AWS 无服务器堆栈