Kotlini vaike- ja nimargumendid (koos näidetega)

Lang L: none (table-of-contents)

Selles artiklis saate näidete abil teada vaikimisi ja nimega argumentidest.

Kotlini vaikeargument

Kotlinis saate funktsiooni määratluses parameetritele anda vaikeväärtused.

Kui funktsiooni kutsutakse edastatud argumentidega, kasutatakse neid argumente parameetritena. Kui aga funktsiooni kutsutakse argumenti (de) edastamata, kasutatakse vaikeargumenti.

Kuidas vaikeargumendid töötavad?

Juhtum I: kõik argumendid on edastatud

Funktsioonil foo()on kaks argumenti. Argumendid esitatakse vaikeväärtustega. Siiski foo()kutsutakse ülaltoodud programmis mõlemad argumendid edastades. Seega vaikeargumente ei kasutata.

Tähe ja numbri väärtus on 'x'vastavalt foo()funktsiooni sees ja 2 .

II juhtum: kõiki argumente ei edastata

Siin edastatakse foo()funktsioonile ainult üks (esimene) argument . Seega kasutab esimene argument funktsioonile edastatud väärtust. Teine argumendi number võtab aga vaikeväärtuse, kuna teist argumenti ei edastata funktsioonikõne ajal.

Tähe ja numbri väärtus 'y'on foo()funktsiooni sees vastavalt ja 15 .

III juhtum: argumenti ei esitata

Siin foo()kutsutakse funktsiooni ühtegi argumenti edastamata. Seega kasutavad mõlemad argumendid oma vaikeväärtusi.

Tähe ja numbri väärtus 'a'on foo()funktsiooni sees vastavalt ja 15 .

Näide: Kotlini vaikeargument

 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) )

Programmi käivitamisel on väljund järgmine:

Väljund, kui ühtegi argumenti pole edastatud: =============== 'Esimese argumendina kasutatakse' * '. Esimese argumendi edastamisel väljund: esimese argumendina kasutatakse tähte "*". Teise argumendina kasutatakse numbrit 5. Mõlema argumendi edastamisel väljund: *****

Kotlin nimetas argumenti

Enne nimetatud argumendist rääkimist kaalume ülaltoodud koodi väikest muutmist:

 fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( displayBorder(5) )

Siin proovime anda displayBorder()funktsioonile teise argumendi ja esimese argumendi jaoks kasutada vaikeargumenti. Kuid see kood annab kasutusele vea. Selle põhjuseks on see, et koostaja arvab, et proovime Inttähemärgile ( Chartüüp) anda 5 ( väärtus ).

Selle olukorra lahendamiseks võib kasutada nimetatud argumente. Siit saate teada, kuidas:

Näide: Kotlini nimeline argument

 fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( displayBorder(length = 5) ) 

Programmi käivitamisel on väljund järgmine:

 =====

Ülaltoodud programmis kasutame nimega argumenti ( length = 5), täpsustades, et funktsiooni definitsioonis peaks pikkuse parameeter võtma selle väärtuse (see ei oma tähtsust argumendi positsioonil).

Esimene argumendimärk kasutab programmis vaikeväärtust '='.

Huvitavad Artiklid...