Почему массив объектов, удовлетворяющих интерфейсу, не приводится к массиву этих интерфейсов?

Есть общая для нескольких типов функция:
type logged interface {
	GetLogID() int64
}

func maxLogID(items []logged) int64 {
	max := int64(0)
	for _, item := range items {
		if item.GetLogID() > max {
			max = item.GetLogID()
		}
	}

	return max
}


Есть объект:
type A struct {
    logID int64
}

func (a A) GetLogID() int64 {
    return a.logID
}


Не получается использовать так:
print(maxLogID(make([]A, 0)))
  • Вопрос задан
  • 86 просмотров
Решения вопроса 2
@deliro
Агрессивное программирование
Нужно make([]logged, 0)
Ответ написан
EvgenyMamonov
@EvgenyMamonov
Senior software developer, system architect
Вот так можете сделать
items := make([]logged, 0)
items = append(items, A{10})
print(maxLogID(items))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Spectrum Екатеринбург
от 100 000 до 160 000 ₽
CarPrice Москва
от 120 000 ₽
MillionAgents Москва
от 150 000 до 200 000 ₽