Задача курса
Go pointer receiver и встраивание struct: изменяемый счётчик
Курс «Golang с нуля» · урок «Методы: value-receiver, pointer-receiver и встраивание структур»
Условие
Счётчик раунда
В спортивных турнирах каждый раунд принято фиксировать отдельно: у него есть собственное название и накопленный счёт, который растёт по мере добавления очков и обнуляется перед следующим этапом. Удобнее всего такую логику оформить так, чтобы сам счётчик жил своей жизнью и ничего не знал о метке, а раунд просто брал его возможности себе — без дублирования кода и лишних прослоек.
В этой задаче Round встраивает Counter как значение. Мы передаём раунд по адресу, поэтому его встроенный счётчик доступен для изменяющих методов. В другом дизайне можно было бы хранить и указатель; это не является требованием pointer-receiver.
Что нужно сделать
Допишите методы Add, Reset и Value у Counter, добавьте анонимно встроенный счётчик в Round и закончите scoreRound. Внутри неё последовательно добавьте три числа через продвинутые методы раунда, сохраните сумму, сбросьте счётчик и верните оба наблюдаемых значения.
Формат ввода
В первой строке метка раунда без пробелов. Во второй — три целых числа.
Формат вывода
Две строки: LABEL: SUM, затем LABEL: 0.
Пример
Ввод: final 2 3 4 Вывод: final: 9 final: 0
Примеры
Пример 1
- Ввод
final 2 3 4
- Ожидаемый результат
final: 9 final: 0
