Ak je funkcia vo vnútri triedy, tak sa označuje ako metóda alebo member funkcia – ale je to v podstate jedno.
Začíname so slovom fun. Potom ide názov a nasledujú argumenty. Ak metóda nič nevracia, tak na pozadí vracia typ Unit.
Ak metóda vracia nejakú hodnotu, tak typ návratovej hodnoty zapíšeme za argumenty za dvojbodku. Ak metóda má návratovú hodnotu inú ako Unit, tak v metód musí byť príkaz return.
fun nazovMetody(argument1: Int, argument2: String): String{
return ""
}
Následne vieme túto metódu zavolať, tak, že dáme názvov metódy, zátvorky a hodnoty pre parametre ak metóda požaduje parametre.
nazovMetody(1, "")
Výsledok metódy vieme zapísať do premennej.
val vysledokVolaniaMetody = nazovMetody(1, "")
Ak funkcia obsahuje len jeden riadok. Napríklad:
fun nazovMetody(argument1: Int, argument2: String): String{
return "$argument1 a $argument2"
}
Tak vieme zápis zjednodušiť tým, že zmažeme zložené zátvorky, zmažeme return a za návratový typ dáme rovná sa :
fun nazovMetody(argument1: Int, argument2: String): String =
"$argument1 a $argument2"
Ak je len jeden riadok, tak kompilátor z neho vie určiť návratový typ, teda aj ten môžeme vymazať:
fun nazovMetody(argument1: Int, argument2: String) = "$argument1 a $argument2"
To isté je možné aj pre funkcie, ktoré nič nevracajú:
fun nicNevraciam() = println("funkcia kde nic nevraciam")
Parametrom vieme pripísať default hodnoty. Tým vieme zavolať funkcie aj bez zadanie parametrov, ktoré majú default hodnotu:
fun nazovMetody(argument1: Int, argument2: String = "Jaro")
= "$argument1 a $argument2"
nazovMetody(10, "Fero")
nazovMetody(10)
Ak chceš kľudne vieš zmeniť poradie parametrov pri volaní metódy ak zadáš ich názov:
nazovMetody(argument2 = "Evka", argument1 = 15)
Tento štýl sa nazýva named arguments. Teda pomenované argumenty. Ak použijeme tento štýl, tak musíme vždy uviesť všetky argumenty s názvom.
Ak tvoja metóda pracuje s údajmi, ktoré sú toho istého typu a chceš s nimi pracovať podobne v metóde, tak vieš ako argument použiť takzvané vararg. Čo je v podstate skratka pre napísanie zoznamu.
Majme metódu, ktorú chceš použiť na vypísanie mien na konzolu. Najprv chcem vypísať 3 mená, neskôr 5 mien a dané mená chcem vložiť ako parametre funkcie. S použitím varags je to jednoducho takto:
fun printMena(vararg mena: String){
for(m in mena){
println(m)
}
}
Metódu zavoláme nasledovne:
printMena("Jaro", "Fero", "Evka", "Palko");
printMena("Evka", "Palko");
printMena("Palko"); printMena();
Teda vstupom metódy je 0 a viac Stringov.
Ak používame vararg, tak môžeme používať aj iný parameter. Ale pri volaní metódy musíme tento parameter pomenovať:
fun printMena(vararg mena: String, text: String) … printMena("Jaro", "Fero", "Duro", text = "text iny");
printMena("Evka", "Palko", text = "text iny");
printMena(text = "text iny");
printMena(); //chyba neuviedol som text
V prípade ak by vararg bol ako posledný parameter a pred vararg by niečo bolo:
fun printMena(text: String, vararg mena: String){
Tak vieme túto metódu zavolať bez named parametru, ale prvý String sa bude považovať, že je text. Teda v tomto príklade by sa za mena považovali len Fero a Duro a Jaro sa bude považovať za text:
printMena("Jaro", "Fero", "Duro");
Ak by si vytvoril pole pomocou arrayOf, tak ako parameter tejto metódy je tiež vararg.
Ak máme metódu, ktorá očakáva vararg, tak v Jave sme do nej vedeli vložiť array. Tu v kotline to nie je možné. Čo musíme spraviť je rozbaliť array na jednotlivé časti – spravíme to tak, že pred parameter, ktorý obsahuje array dáme hviezdičku *.
fun printMena(vararg mena: String){ .. val mena = arrayOf("Jaro", "Fero", "Duro")
printMena(mena); //chyba
printMena(*mena); //ok
- Písanie kódu – programovanie v Jave
- Naprogramuj si vlastnú Android aplikáciu v jazyku Kotlin
- Divi scroll efekty
- Dizajnujem web v Divi téme (WordPress)
- Divi najlepšia WordPress téma – 9 dôvodov prečo ju používať (2020)
Páčil sa ti článok? Zváž zdieľanie. Ďakujeme.