Kotlinin oletusarvot ja nimetyt argumentit (esimerkkien kanssa)

Tässä artikkelissa opit oletuksista ja nimetyistä argumenteista esimerkkien avulla.

Kotlinin oletusarvo

Kotlinissa voit antaa oletusarvot parametreille funktion määrittelyssä.

Jos funktiota kutsutaan välitetyillä argumenteilla, näitä argumentteja käytetään parametreina. Jos funktiota kutsutaan kuitenkin välittämättä argumentteja, käytetään oletusargumentteja.

Kuinka oletusargumentit toimivat?

Tapaus I: Kaikki perustelut hyväksyttiin

Funktiossa foo()on kaksi argumenttia. Argumentit toimitetaan oletusarvoilla. Sitä foo()kutsutaan kuitenkin välittämällä molemmat argumentit yllä olevassa ohjelmassa. Siksi oletusargumentteja ei käytetä.

Kirjaimen ja numeron arvo on 'x'vastaavasti ja 2 foo()funktion sisällä .

Tapaus II: Kaikkia argumentteja ei hyväksytä

Tässä vain yksi (ensimmäinen) argumentti välitetään foo()funktiolle. Siksi ensimmäinen argumentti käyttää funktiolle välitettyä arvoa. Toinen argumenttinumero ottaa kuitenkin oletusarvon, koska toista argumenttia ei välitetä funktion kutsun aikana.

Kirjaimen ja numeron arvo on funktion 'y'sisällä ja vastaavasti 15 foo().

Tapaus III: Ei argumentteja

Tässä foo()funktiota kutsutaan välittämättä mitään argumenttia. Siksi molemmat argumentit käyttävät oletusarvojaan.

Kirjaimen ja numeron arvo on funktion 'a'sisällä ja vastaavasti 15 foo().

Esimerkki: Kotlinin oletusargumentti

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

Kun suoritat ohjelmaa, tulos on:

Tulos, kun argumenttia ei välitetä: =============== '*' käytetään ensimmäisenä argumenttina. Tulos, kun ensimmäinen argumentti välitetään: *************** '*' käytetään ensimmäisenä argumenttina. Viitetta 5 käytetään toisena argumenttina. Tulos, kun molemmat argumentit välitetään: *****

Kotlin nimitti argumentin

Ennen kuin puhumme nimetyistä argumenteista, mietitään pieniä muutoksia yllä olevaan koodiin:

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

Tässä yritämme siirtää toisen argumentin displayBorder()funktiolle ja käyttää oletusargumenttia ensimmäiseen argumenttiin. Tämä koodi antaa kuitenkin virheen. Se johtuu siitä, että kääntäjä uskoo, että yritämme antaa merkille Int( Chartyyppi) 5 ( arvo ).

Tämän tilanteen ratkaisemiseksi voidaan käyttää nimettyjä argumentteja. Näin:

Esimerkki: Kotlinin nimetty argumentti

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

Kun suoritat ohjelmaa, tulos on:

 =====

Yllä olevassa ohjelmassa käytämme nimettyä argumenttia ( length = 5), joka määrittää, että funktion määritelmän pituusparametrin tulisi ottaa tämä arvo (ei ole väliä argumentin sijainnilla).

Ensimmäinen argumenttimerkki käyttää ohjelman oletusarvoa '='.

Mielenkiintoisia artikkeleita...