我需要一个包含多种类型的抽象切片。最简化的代码是这样的:
package main
import "fmt"
type A interface{}
type X string
func main() {
sliceA := make([]A, 0, 0)
sliceX := []X{"x1", "x2"}
var appendedSlice []A
appendedSlice = append(sliceA, sliceX[0], sliceX[1]) // (1) works
appendedSlice = append(sliceA, sliceX...) // (2) doesn't work
fmt.Println(appendedSlice)
}
在我的真实程序中,接口A定义了一些功能,X和其他类型也实现了它。
第 (2) 行引发错误cannot use sliceX (type []X) as type []A in append。
我认为 (2) 是 (1) 的语法糖,但我可能遗漏了一些东西……我是否必须始终将元素 X 一个一个地添加到切片 A 中?
提前谢谢你们!
撒科打诨
相关分类