U ovom ćete članku uz primjere naučiti o zadanim i imenovanim argumentima.
Kotlinov zadani argument
U Kotlinu možete zadati zadane vrijednosti parametrima u definiciji funkcije.
Ako se funkcija poziva s prosljeđenim argumentima, ti se argumenti koriste kao parametri. Međutim, ako se funkcija poziva bez prosljeđivanja argumenata, koristi se zadani argument.
Kako funkcioniraju zadani argumenti?
Slučaj I: Svi argumenti proslijeđeni
Funkcija foo()
uzima dva argumenta. Argumenti imaju zadane vrijednosti. Međutim, foo()
poziva se prosljeđivanjem oba argumenta u gornji program. Stoga se zadani argumenti ne koriste.
Vrijednost slova i broja bit će, 'x'
odnosno 2, unutar foo()
funkcije.
Slučaj II: Svi argumenti nisu proslijeđeni
Ovdje se foo()
funkciji prenosi samo jedan (prvi) argument . Dakle, prvi argument koristi vrijednost proslijeđenu funkciji. Međutim, drugi će broj argumenta imati zadanu vrijednost jer se drugi argument ne prenosi tijekom poziva funkcije.
Vrijednost slova i broja bit će, 'y'
odnosno 15 unutar foo()
funkcije.
Slučaj III: Nijedan argument nije proslijeđen
Ovdje se foo()
funkcija poziva bez prolaska bilo kakvog argumenta. Dakle, oba argumenta koriste svoje zadane vrijednosti.
Vrijednost slova i broja bit će, 'a'
odnosno 15 unutar foo()
funkcije.
Primjer: Zadani argument Kotlina
fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( println("Output when no argument is passed:") displayBorder() println("'*' is used as a first argument.") println("Output when first argument is passed:") displayBorder('*') println("'*' is used as a first argument.") println("5 is used as a second argument.") println("Output when both arguments are passed:") displayBorder('*', 5) )
Kada pokrenete program, izlaz će biti:
Izlaz kad se ne proslijedi nijedan argument: =============== '' * 'koristi se kao prvi argument. Izlaz kada se preda prvi argument: *************** '*' koristi se kao prvi argument. 5 koristi se kao drugi argument. Izlaz kada su proslijeđena oba argumenta: *****
Kotlin imenovani argument
Prije razgovora o imenovanom argumentu, razmislimo o maloj izmjeni gornjeg koda:
fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( displayBorder(5) )
Ovdje pokušavamo displayBorder()
funkciji proslijediti drugi argument , a za prvi argument koristimo zadani argument. Međutim, ovaj će kôd dati pogrešku upotrebe. To je zato što prevodilac misli da pokušavamo pružiti 5 ( Int
vrijednost) znaku ( Char
tipu).
Da bi se riješila ova situacija, mogu se koristiti imenovani argumenti. Evo kako:
Primjer: Kotlin imenovani argument
fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( displayBorder(length = 5) )
Kada pokrenete program, izlaz će biti:
=====
U gornjem programu koristimo imenovani argument ( length = 5
) koji određuje da parametar duljine u definiciji funkcije treba uzeti ovu vrijednost (nije važno položaj argumenta).
Znak prvog argumenta koristi zadanu vrijednost '='
u programu.