Найти тему
Voyti v it

Функции с единственным выражением в Котлин.

Тело функции может содержать любое количество операторов. Однако, бывают случаи, когда функция содержит одно выражение (одну строку), то есть вычисляют всего один оператор. Для функции с единственным выражением, можно не указывать тип возвращаемого значения, фигурные скобки и оператор renurn. Как это выглядит:

Пример, взятый с сайта https://www.bestprog.net/:

fun FuncName(parameters) = expression здесь:

  • FuncName – имя функции;
  • parameters – список параметров функции;
  • expression – выражение, определяющее тело функции.

Пример функции с единственным выражением в неоптимизированном виде:

private fun auraColor(isBlessed: Boolean, healthPoints: Int, isImmortal: Boolean): String {

val auraVisible = isBlessed && healthPoints >50 || isImmortal

val auraColor = if (auraVisible) "GREEN" else "NONE"

return auraColor

}

А так выглядит оптимизированный код:

private fun auraColor(isBlessed: Boolean, healthPoints: Int, isImmortal: Boolean) = if (isBlessed && healthPoints > 50 || isImmortal) "GREEN" else "NONE"

Как видим, код более короткий, а результат одинаковый.