Задать вопрос

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

Есть общая для нескольких типов функция:
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)))
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 2
@deliro
Нужно make([]logged, 0)
Ответ написан
Комментировать
EvgenyMamonov
@EvgenyMamonov Куратор тега Go
Senior software developer, system architect
Вот так можете сделать
items := make([]logged, 0)
items = append(items, A{10})
print(maxLogID(items))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы