Тело функции может содержать любое количество операторов. Однако, бывают случаи, когда функция содержит одно выражение (одну строку), то есть вычисляют всего один оператор. Для функции с единственным выражением, можно не указывать тип возвращаемого значения, фигурные скобки и оператор 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"
Как видим, код более короткий, а результат одинаковый.