Difference between revisions of "Default parameter/fi"

From Lazarus wiki
Jump to navigationJump to search
m (Fixed syntax highlighting)
 
Line 9: Line 9:
 
== Esimerkki deadline_day ==
 
== Esimerkki deadline_day ==
  
<source>
+
<syntaxhighlight lang=pascal>
 
 
 
uses SysUtils, DateUtils
 
uses SysUtils, DateUtils
  
Line 38: Line 37:
 
   result := EncodeDate( y, m, d );
 
   result := EncodeDate( y, m, d );
 
end;  
 
end;  
 
+
</syntaxhighlight>
</source>
 
  
 
Oletusarvoparametriä käytetään tarpeen vaatiessa kutsussa korvaamaan puuttuvaa parametriä
 
Oletusarvoparametriä käytetään tarpeen vaatiessa kutsussa korvaamaan puuttuvaa parametriä
 
* Ohjelman kutsu <code> deadline_day( 5 ); </code> //-> kutsuu <code> deadline_day( 5, 0 ); </code>
 
* Ohjelman kutsu <code> deadline_day( 5 ); </code> //-> kutsuu <code> deadline_day( 5, 0 ); </code>
 
* Ohjelman kutsu <code> deadline_day( 5, 1 ); </code> //-> kutsuu <code> deadline_day( 5, 1 ); </code>
 
* Ohjelman kutsu <code> deadline_day( 5, 1 ); </code> //-> kutsuu <code> deadline_day( 5, 1 ); </code>

Latest revision as of 08:21, 12 February 2020

Deutsch (de) English (en) español (es) suomi (fi) français (fr) polski (pl) русский (ru)

Oletusarvo parametri

Oletusarvo parametrilla tarkoitetaan funktion tai 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).

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ä.

Esimerkki deadline_day

uses SysUtils, DateUtils


function deadline_day( day: integer; month: integer = 0 ) : tDateTime;
var
  n :TDateTime;
  y, m, d :word;
begin
  n := now;
  DecodeDate( n, y, m, d );
  if month = 0 then
     begin
       if d > day  then
         begin
           n := IncMonth( n );
           DecodeDate( n, y, m, d );
         end;
     end
   else
     begin
       if month < m then n := IncYear( n );
       DecodeDate( n, y, m, d );
       m := month;
     end;
    d := day;
   result := EncodeDate( y, m, d );
end;

Oletusarvoparametriä käytetään tarpeen vaatiessa kutsussa korvaamaan puuttuvaa parametriä

  • Ohjelman kutsu deadline_day( 5 ); //-> kutsuu deadline_day( 5, 0 );
  • Ohjelman kutsu deadline_day( 5, 1 ); //-> kutsuu deadline_day( 5, 1 );