Študijné materiály

Ak sa funkcia skladá z jediného výrazu, potom nie je potrebné písať jej návratový typ (keďže je zjavný) a netreba písať ani blok príkazov ani return statement. Ukážka:

Pôvodný zápis:

fun compute(a: Int, b: Int) : Int {
    return a * b
}

Jednoriadkový zápis:

fun compute(a: Int, b: Int) = a * b

Tento zápis používame pomerne často, pretože výrazy vedia byť aj dosť komplexné. Uvediem preto ešte jeden príklad:

fun weekDayName(dayNumber: Int) = when(dayNumber) {
    1 -> "Monday"
    2 -> "Tuesday"
    // ...
    else -> "Invalid input"
}

When je totiž tiež len jeden výraz avšak môže byť rozložený na stovke riadkov. Dobrým zvykom ale je pri zložitejších funkciách zachovať aspoň vymenovanie návratového typu:

fun weekDayName(dayNumber: Int) : String = when(dayNumber) { // ...

Úlohy

Úloha 1

Prepíš funkciu na výpočet obsahu obdĺžnika do jednoriadkového zápisu.

Úloha 2

Vytvor jednoriadkovú funkciu jeKladne, ktorá vráti, či je číslo väčšie než nula.

Úloha 3

Napíš jednoriadkovú funkciu s when, ktorá pre známku 1 až 5 vráti slovné hodnotenie.