Практика контекстных параметров в Kotlin
Объявите Metrics с методом inc
и функцию hit с контекстом
metrics: Metrics. В main
увеличьте счетчик три раза внутри одного
context и выведите итоговое значение.
Сделайте HtmlEscaper с методом
safe для замены "&" на
"&". Функция renderLine
с контекстом escaper: HtmlEscaper и
logger: Logger печатает безопасную строку.
Проверьте на тексте "a&b".
Объявите Signer с методом sign,
который добавляет суффикс "-ok", и
Sender с методом dispatch.
Функция sendSigned с двумя контекстами
передает в Sender подписанное имя.
Две перегрузки trace используют
Logger с именами fast и
slow в context и разные
префиксы. Вызовите каждую через отдельный
блок context без флага компилятора.
Повторите предыдущую задачу с флагом
-Xexplicit-context-arguments и
именованными аргументами контекста в вызове
trace.
Класс RateLimit хранит число вызовов
и метод allow, возвращающий false
после 2 обращений. Функция gate
с контекстом выводит "open" или
"closed" через Logger.
Проверьте три подряд вызова в одном блоке.
Объедините Vault из урока про параметр
и Logger: функция auditDeposit
с двумя контекстами кладет сумму в хранилище
и пишет ключ в журнал. Сумма для ключа
"tax" равна 7.