Ebben a cikkben példák segítségével megismerheti az alapértelmezett és megnevezett argumentumokat.
Kotlin alapértelmezett argumentuma
Kotlinban a függvénydefinícióban megadhat alapértelmezett értékeket a paramétereknek.
Ha a függvényt átadott argumentumokkal hívják meg, akkor ezeket az argumentumokat használják paraméterként. Ha azonban a függvényt argumentum (ok) átadása nélkül hívják meg, akkor alapértelmezett argumentumot használnak.
Hogyan működnek az alapértelmezett argumentumok?
I. eset: Minden érv elfogadásra került
A függvénynek foo()
két argumentuma van. Az argumentumok alapértelmezett értékekkel vannak megadva. Ugyanakkor foo()
a fenti program mindkét argumentumának megadásával hívják meg. Ezért az alapértelmezett argumentumokat nem használják.
A betű és a szám értéke 'x'
2, illetve 2 lesz a foo()
függvényen belül .
II. Eset: Minden érvet nem fogadunk el
Itt csak egy (első) argumentumot adunk át a foo()
függvénynek. Ezért az első argumentum a függvénynek átadott értéket használja. A második argumentumszám azonban az alapértelmezett értéket veszi fel, mivel a második argumentum nem kerül átadásra a függvényhívás során.
A betű és a szám értéke 'y'
a foo()
függvényben 15, illetve 15 lesz .
III. Eset: Nincs érv
Itt a foo()
függvényt argumentum nélkül adjuk meg. Ezért mindkét argumentum az alapértelmezett értékeket használja.
A betű és a szám értéke 'a'
a foo()
függvényben 15, illetve 15 lesz .
Példa: Kotlin alapértelmezett argumentuma
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) )
A program futtatásakor a kimenet a következő lesz:
Kimenet, amikor nem adunk át argumentumot: =============== A '*' szerepel első argumentumként. Kimenet az első argumentum átadásakor: *************** Az első argumentumként a '*' szót használják. Az 5-öt második érvként használják. Kimenet mindkét argumentum átadásakor: *****
Kotlin nevezett érvet
Mielőtt megemlítenénk a megnevezett argumentumot, vegyük fontolóra a fenti kód egy kis módosítását:
fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( displayBorder(5) )
Itt megpróbálunk második argumentumot átadni a displayBorder()
függvénynek, és az alapértelmezett argumentumot használjuk az első argumentumhoz. Ez a kód azonban hibát ad. Ez azért van, mert a fordító úgy gondolja, hogy megpróbálunk 5-öt ( Int
értéket) megadni a karakterhez ( Char
típushoz).
A helyzet megoldására megnevezett argumentumok használhatók. Így:
Példa: Kotlin megnevezett argumentum
fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( displayBorder(length = 5) )
A program futtatásakor a kimenet a következő lesz:
=====
A fenti programban megnevezett argumentumot ( length = 5
) használunk, amely meghatározza, hogy a függvénydefiníció hosszának paraméterének ezt az értéket kell megadnia (nem számít az argumentum helye).
Az első argumentum karakter az alapértelmezett értéket használja '='
a programban.