Šajā rakstā jūs uzzināsit par noklusējuma un nosauktajiem argumentiem, izmantojot piemērus.
Kotlina noklusējuma arguments
Kotlinā funkciju definīcijā parametriem varat norādīt noklusējuma vērtības.
Ja funkcija tiek izsaukta ar nodotiem argumentiem, šie argumenti tiek izmantoti kā parametri. Tomēr, ja funkcija tiek izsaukta bez argumenta (-u) nodošanas, tiek izmantots noklusējuma arguments.
Kā darbojas noklusējuma argumenti?
I lieta: visi argumenti ir pieņemti
Funkcijai foo()
nepieciešami divi argumenti. Argumenti ir norādīti ar noklusējuma vērtībām. Tomēr foo()
tiek izsaukts, nododot abus argumentus iepriekšminētajā programmā. Tādējādi noklusējuma argumenti netiek izmantoti.
Burta un cipara vērtība funkcijas 'x'
iekšpusē būs attiecīgi un 2 foo()
.
II lieta: visi argumenti nav pieņemti
Šeit foo()
funkcijai tiek nodots tikai viens (pirmais) arguments . Tādējādi pirmais arguments izmanto funkcijai nodoto vērtību. Tomēr otrais argumenta numurs ņems noklusējuma vērtību, jo otrais arguments netiek nodots funkcijas izsaukuma laikā.
Burta un cipara vērtība funkcijas 'y'
iekšpusē būs attiecīgi un 15 foo()
.
III lieta: arguments netiek pieņemts
Šeit foo()
funkcija tiek izsaukta, neizmantojot nevienu argumentu. Tādējādi abos argumentos tiek izmantotas noklusējuma vērtības.
Burta un cipara vērtība funkcijas 'a'
iekšpusē būs attiecīgi un 15 foo()
.
Piemērs: Kotlina noklusējuma arguments
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) )
Palaidot programmu, izeja būs:
Rezultāts, kad nav nodots neviens arguments: =============== '*' tiek izmantots kā pirmais arguments. Izeja, kad tiek nodots pirmais arguments: *************** '*' tiek izmantots kā pirmais arguments. 5 tiek izmantots kā otrais arguments. Rezultāts, kad abi argumenti ir nodoti: *****
Kotlins nosauca argumentu
Pirms runājam par nosaukto argumentu, ņemsim vērā nelielu iepriekšminētā koda modifikāciju:
fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( displayBorder(5) )
Šeit mēs cenšamies nodot displayBorder()
funkcijai otro argumentu un pirmajam argumentam izmantot noklusējuma argumentu. Tomēr šis kods izmantošanas gadījumā radīs kļūdu. Tas ir tāpēc, ka sastādītājs domā, ka mēs cenšamies norādīt 5 ( Int
vērtību) rakstzīmei ( Char
tipam).
Lai atrisinātu šo situāciju, var izmantot nosauktos argumentus. Lūk, kā:
Piemērs: Kotlina nosauktais arguments
fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( displayBorder(length = 5) )
Palaidot programmu, izeja būs:
=====
Iepriekš minētajā programmā mēs izmantojam nosaukto argumentu ( length = 5
), norādot, ka garuma parametram funkcijas definīcijā vajadzētu būt šai vērtībai (nav nozīmes argumenta pozīcijai).
Pirmais argumenta raksturs izmanto programmas noklusējuma vērtību '='
.