Difference between revisions of "Default parameter/pl"

From Lazarus wiki
Jump to navigationJump to search
(Usunięcie tekstów angielskich)
(→‎Przykład deadlineDay: tłumaczenie na j. polski)
Line 7: Line 7:
 
Uwaga: gdy na liście parametrów zostanie zdefiniowany opcjonalny parametr, wszystkie następujące parametry również muszą być opcjonalne. Obowiązkowy parametr nie może mieć pozycji późniejszej niż parametr opcjonalny.
 
Uwaga: gdy na liście parametrów zostanie zdefiniowany opcjonalny parametr, wszystkie następujące parametry również muszą być opcjonalne. Obowiązkowy parametr nie może mieć pozycji późniejszej niż parametr opcjonalny.
  
== Przykład <code>deadlineDay</code> ==
+
== Przykład <code>SumaLiczb</code> ==
  
 
<syntaxhighlight lang=pascal>
 
<syntaxhighlight lang=pascal>
{$mode objfpc}
+
function SumaLiczb ( a, b : integer; c : integer = 0; d : integer = 7 ) : integer;
 +
begin
 +
  Result := a + b + c + d;
 +
end;
  
uses SysUtils, DateUtils;
+
</syntaxhighlight>
 +
 
 +
Prawidłowe sposoby korzystania z funkcji SumaLiczb i jej wyniki:
 +
 
 +
<syntaxhighlight lang=pascal>
 +
SumaLiczb ( 0, 1)        // 0 + 1 + 0 +  7 =  8
 +
SumaLiczb ( 0, 1, 3)    // 0 + 1 + 3 +  7 = 11
 +
SumaLiczb ( 0, 1, 3, 10) // 0 + 1 + 3 + 10 = 14
  
function deadlineDay(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
 
    begin
 
      n := IncYear(n);
 
    end;
 
    decodeDate(n, y, m, d);
 
    m := month;
 
  end;
 
  d := day;
 
  result := EncodeDate(y, m, d);
 
end;
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Parametr domyślny jest używany w miejscu brakującego parametru końcowego, dlatego
+
Nieprawidłowe sposoby użycia funkcji SumaLiczb, które spowodują błąd:
* wywołanie w programie <code>deadlineDay(5)</code> powoduje wywołanie <code>deadlineDay(5, 0)</code>
+
 
* wywołanie w programie <code>deadlineDay(5, 1)</code> rzeczywiście wywołuje <code>deadlineDay(5, 1)</code>
+
<syntaxhighlight lang=pascal>
 +
SumaLiczb ( 0, 1, , 9) // jeśli pierwszy parametr z wartością domyślną pominiemy, to pozostałe również należy pominąć (od lewej do prawej)
 +
</syntaxhighlight>

Revision as of 19:00, 30 August 2020

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

Parametr domyślny nazywany również argumentem opcjonalnym (lub argumentem domyślnym) to parametr funkcji lub procedury, który ma podaną wartość domyślną. Jeśli programista nie poda wartości tego parametru, zostanie użyta wartość domyślna. Jeśli programista poda wartość parametru domyślnego, używana jest wartość podana przez programistę.

Programista może rozszerzyć istniejącą funkcję lub procedurę, dodając parametry, które mają wartość domyślną, zamiast pisać identyczną metodę z różnymi parametrami.

Uwaga: gdy na liście parametrów zostanie zdefiniowany opcjonalny parametr, wszystkie następujące parametry również muszą być opcjonalne. Obowiązkowy parametr nie może mieć pozycji późniejszej niż parametr opcjonalny.

Przykład SumaLiczb

function SumaLiczb ( a, b : integer; c : integer = 0; d : integer = 7 ) : integer;
begin
  Result := a + b + c + d;
end;

Prawidłowe sposoby korzystania z funkcji SumaLiczb i jej wyniki:

SumaLiczb ( 0, 1)        // 0 + 1 + 0 +  7 =  8
SumaLiczb ( 0, 1, 3)     // 0 + 1 + 3 +  7 = 11
SumaLiczb ( 0, 1, 3, 10) // 0 + 1 + 3 + 10 = 14

Nieprawidłowe sposoby użycia funkcji SumaLiczb, które spowodują błąd:

SumaLiczb ( 0, 1, , 9) // jeśli pierwszy parametr z wartością domyślną pominiemy, to pozostałe również należy pominąć (od lewej do prawej)