🗒 Задача¶
В компьютерной игре игрок может подобрать лечебное зелье, которое восстанавливает всё его здоровье. Для реализации программы понадобится создать простой класс игрока (у него должно быть имя, текущее и максимальное здоровье).
– Напиши лямбда-функцию с явным указанием типа переменной, реализующую лечебное зелье. Функция должна принимать в качестве параметра объект игрока. – Создай экземпляр игрока с неполным здоровьем, примени к нему созданную лямбду-функцию.
❌ Ошибки¶
-
используют анонимные функции вместо лямбды
-
используют короткую запись (сразу объявление и вызов) – не ошибка, но пишем коммент с рекомендацией так не злоупотреблять
✏️ Комментарии¶
Тут ты использовал [анонимную функцию](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 }