Перейти к содержанию

🗒 Задача

В компьютерной игре игрок может подобрать лечебное зелье, которое восстанавливает всё его здоровье. Для реализации программы понадобится создать простой класс игрока (у него должно быть имя, текущее и максимальное здоровье).

– Напиши лямбда-функцию с явным указанием типа переменной, реализующую лечебное зелье. Функция должна принимать в качестве параметра объект игрока. – Создай экземпляр игрока с неполным здоровьем, примени к нему созданную лямбду-функцию.

❌ Ошибки

  • используют анонимные функции вместо лямбды

  • используют короткую запись (сразу объявление и вызов) – не ошибка, но пишем коммент с рекомендацией так не злоупотреблять

✏️ Комментарии

Тут ты использовал [анонимную функцию](https://kotlinlang.org/docs/lambdas.html#anonymous-functions), давай попробуем сделать то же самое, но через лямбду.
Тут все верно, но все таки не рекомендую злоупотреблять такими короткими записями лямбды. Такой вид проигрывает в плане читаемости кода.

🧾 Решение

fun main() {
    val player = Player()
    println(player.currentHealth)
    healWithHealingPotion(player)
    println(player.currentHealth)
}

class Player {
    val name = "Dragula"
    val maxHealth = 20
    var currentHealth = 5
}

// можно написать функцию в теле класса
val healWithHealingPotion: (Player) -> Unit = { it: Player -> it.currentHealth = it.maxHealth }