добавить структуру B (которая наследуется от структуры A) к фрагменту структур A - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть структура B, которая наследуется от структуры A. У меня есть другая структура C (которая содержит фрагмент структур A), и я хочу добавить B к C.

package main

type A struct {
    target string
}

type B struct{
    A
    values []int
}

type C struct{
    Cols []*A
}

func main() {

var values = []int{1,2,3}
var col1 = C{} 
var col2 = &B {
    A: A{
        target: "txt",
    },
    values: values,
    }

col1.Cols = append(col1.Cols, col2)

}

При запуске этогокод, он генерирует ошибку: нельзя использовать col2 (тип * B) в качестве типа * A в добавлении

Что не так, пожалуйста?Я новее

Ps: извините за мой плохой английский

1 Ответ

0 голосов
/ 20 февраля 2019

col1.Cols - это тип * A, col2 - это тип * B, col2.A - это тип A, если вы хотите добавить новый элемент в срезы, они должны быть одного типа.так что если вы измените последний оператор на

col1.Cols = append(col1.Cols, &col2.A)

, он будет работать.

...