Default parameter/fi: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: Default parameter/fi
| Old | New | Line | |
|---|---|---|---|
| 1 | + | # Oletusarvo parametri | |
| 2 | + | ||
| 3 | + | Oletusarvo parametrilla tarkoitetaan [[Function|funktion]] tai [[Procedure/fi|aliohjelman]] parametriä joka on annettu oletuksena kutsussa. Jos ohjelmoija ei kutsussa korvaa sitä toisella niin käytetään oletusarvoa. Jos ohjelmoija antaa myös tämän parametrin niin käytetään ohjelmoijan antamaa arvoa. Ohjelmoija voi laajentaa funktiota tai aliohjelmaa että sinne voidaan antaa jotain arvoja oletuksena (kirjoittamatta lähes identtisiä vastaavia metodeita). | |
| 4 | + | ||
| 5 | + | Huomio: Kun parametriluettelossa on valinnainen parametri, kaikkien seuraavien parametrien on oltava valinnaisia. Pakollisella parametrilla ei saa olla myöhäisempi paikka parametriluettelossa kuin valinnaisella parametrillä. | |
| 6 | + | ||
| 7 | + | ## Esimerkki deadline_day | |
| 8 | + | ||
| 9 | + | ``` pascal | |
| 10 | + | uses SysUtils, DateUtils | |
| 11 | + | ||
| 12 | + | function deadline_day( day: integer; month: integer = 0 ) : tDateTime; | |
| 13 | + | var | |
| 14 | + | n :TDateTime; | |
| 15 | + | y, m, d :word; | |
| 16 | + | begin | |
| 17 | + | n := now; | |
| 18 | + | DecodeDate( n, y, m, d ); | |
| 19 | + | if month = 0 then | |
| 20 | + | begin | |
| 21 | + | if d > day then | |
| 22 | + | begin | |
| 23 | + | n := IncMonth( n ); | |
| 24 | + | DecodeDate( n, y, m, d ); | |
| 25 | + | end; | |
| 26 | + | end | |
| 27 | + | else | |
| 28 | + | begin | |
| 29 | + | if month < m then n := IncYear( n ); | |
| 30 | + | DecodeDate( n, y, m, d ); | |
| 31 | + | m := month; | |
| 32 | + | end; | |
| 33 | + | d := day; | |
| 34 | + | result := EncodeDate( y, m, d ); | |
| 35 | + | end; | |
| 36 | + | ``` | |
| 37 | + | ||
| 38 | + | Oletusarvoparametriä käytetään tarpeen vaatiessa kutsussa korvaamaan puuttuvaa parametriä | |
| 39 | + | ||
| 40 | + | - Ohjelman kutsu `deadline_day( 5 );` //-\> kutsuu `deadline_day( 5, 0 );` | |
| 41 | + | - Ohjelman kutsu `deadline_day( 5, 1 );` //-\> kutsuu `deadline_day( 5, 1 );` | |
| 42 | + | ||
| 43 | + | --- | |
| 44 | + | *From the Free Pascal wiki, page "Default parameter/fi", as it stood on 2020-02-12 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* |
