Мне нужен абстрактный фрагмент, содержащий несколько типов. Самый упрощенный код такой:
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 один за другим?
Заранее спасибо, ребята!