Задача курса

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

Попробуйте решить

РешениеGo
Без регистрации · результат не сохраняется