Шаг 38.
Основы Kotlin.
Функции. Функции с единственным выражением

    На этом шаге мы рассмотрим особенности создания таких функций.

    Язык Kotlin позволяет сократить объявления таких функций, как castFireball() или formatHealthStatus(), которые состоят из единственного выражения, то есть вычисляют всего один оператор. Для функций с единственным выражением можно не указывать тип возвращаемого значения, фигурные скобки и оператор return. Измените castFireball() и formatHealthStatus(), как показано ниже.

.   .   .   .   .
private fun formatHealthStatus(healthPoints: Int, isBlessed: Boolean) = 
        when (healthPoints) {
        100 -> "is in excellent condition!"
        in 90..99 -> "has a few scratches."
        in 75..89 -> if (isBlessed) {
            "has some minor wounds but is healing quite quickly!"
        } else {
            "has some minor wounds."
        }
        in 15..74 -> "looks pretty hurt."
        else -> "is in awful condition!"
    }

private fun castFireball(numFireballs: Int = 2) =
    println("A glass of Fireball springs into existence.(x$numFireballs)")

Файл с проектом можно взять здесь.


Рис.1. Альтернативный синтаксис определения функций с единственным выражением (Game.kt)

    Обратите внимание, что для определения тела функции с единственным выражением можно использовать синтаксис с оператором присваивания (=), за которым следует выражение.

    Альтернативный синтаксис позволит сократить объявления функций с единственным выражением, которое должно быть вычислено для выполнения работы. Если функция должна вычислить несколько выражений, просто используйте прежний синтаксис, описанный в предыдущих шагах.

    С этого момента мы будем применять синтаксис для функций с единственным выражением везде, где можно сделать код более лаконичным.

    На следующем шаге мы рассмотрим функции с возвращаемым типом Unit.




Предыдущий шаг Содержание Следующий шаг