Sign in Join
Wiki copytemporary

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

OldNewLine
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).*

Back to history