Šiame straipsnyje su pavyzdžių pagalba sužinosite apie numatytuosius ir įvardintus argumentus.
„Kotlin“ numatytasis argumentas
„Kotlin“ funkcijų apibrėžime galite pateikti numatytąsias parametrų reikšmes.
Jei funkcija iškviečiama perduodant argumentus, šie argumentai naudojami kaip parametrai. Tačiau jei funkcija iškviečiama neperduodant argumento (-ų), naudojamas numatytasis argumentas.
Kaip veikia numatytieji argumentai?
I atvejis: visi argumentai priimti
Funkcijai foo()
reikia dviejų argumentų. Argumentai pateikiami su numatytosiomis reikšmėmis. Tačiau foo()
iškviečiamas perduodant abu argumentus aukščiau pateiktoje programoje. Taigi numatytieji argumentai nenaudojami.
Raidės ir skaičiaus reikšmė funkcijos 'x'
viduje bus atitinkamai ir 2 foo()
.
II atvejis: nepateikti visi argumentai
Čia foo()
funkcijai perduodamas tik vienas (pirmasis) argumentas . Taigi pirmasis argumentas naudoja funkcijai perduotą vertę. Tačiau antrasis argumento numeris įgis numatytąją vertę, nes antrasis argumentas neperduodamas per funkcijos iškvietimą.
Raidės ir skaičiaus reikšmė funkcijos 'y'
viduje bus atitinkamai ir 15 foo()
.
III atvejis: argumentas nepateiktas
Čia foo()
funkcija iškviečiama nepateikiant jokių argumentų. Taigi, abu argumentai naudoja numatytąsias reikšmes.
Raidės ir skaičiaus reikšmė funkcijos 'a'
viduje bus atitinkamai ir 15 foo()
.
Pavyzdys: „Kotlin“ numatytasis argumentas
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) )
Kai paleisite programą, išvestis bus:
Rezultatas, kai neperduodamas argumentas: =============== '*' naudojamas kaip pirmasis argumentas. Rezultatas, kai perduodamas pirmasis argumentas: *************** „*“ naudojamas kaip pirmasis argumentas. 5 naudojamas kaip antrasis argumentas. Rezultatas, kai pateikiami abu argumentai: *****
Kotlinas įvardijo argumentą
Prieš kalbėdami apie įvardytą argumentą, apsvarstykime šiek tiek pirmiau minėto kodo pakeitimą:
fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( displayBorder(5) )
Čia mes bandome perduoti antrą argumentą displayBorder()
funkcijai ir naudoti numatytąjį argumentą pirmajam argumentui. Tačiau šis kodas suteiks naudojimo klaidą. Taip yra todėl, kad kompiliatorius mano, kad mes stengiamės suteikti Int
simboliui ( Char
tipui) 5 ( vertė ).
Norėdami išspręsti šią situaciją, gali būti naudojami įvardyti argumentai. Štai kaip:
Pavyzdys: Kotlino įvardytas argumentas
fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( displayBorder(length = 5) )
Kai paleisite programą, išvestis bus:
=====
Pirmiau pateiktoje programoje mes naudojame pavadintą argumentą ( length = 5
), nurodantį, kad funkcijos apibrėžimo ilgio parametras turėtų užimti šią vertę (nesvarbu argumento padėtis).
Pirmasis argumento simbolis naudoja numatytąją '='
programos vertę .