Пропуски Junior Дженерики обновлено

Обобщённая функция суммы

Вопрос

Допишите обобщённую функцию суммы.

type Number interface {
    ~int | ~int64 | ~float64
}

func Sum[T __(1)__](xs []T) T {
    var s __(2)__
    for _, x := range xs {
        s += x
    }
    return s
}

Попробуйте сами

Заполните пропуски по номерам.

1
2
Показать ответ и разбор

Коротко

Ограничение Number разрешает += для всех типов набора. Аккумулятор объявлен как var s T, его нулевое значение 0 для любого числового T.

Что в пропусках

1

Number

2

T

Разбор

Ограничение Number разрешает += для всех типов набора. Аккумулятор объявлен как var s T, его нулевое значение 0 для любого числового T.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.