Difference between revisions of "Default parameter/pl"

From Lazarus wiki
(Kopia strony en)
 
m (Przykład SumaLiczb)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{Default parameter}}
 
{{Default parameter}}
  
A default parameter also referred to as optional argument (or default argument) is a [[Function|function]] or
+
Parametr domyślny nazywany również argumentem opcjonalnym (lub argumentem domyślnym) to parametr [[Function|funkcji]] lub [[Procedure|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ę.
[[Procedure|procedure]] parameter that has a default value provided to it.
 
If the programmer does not supply a value for this parameter, the default value will be used.
 
If the programmer does supply a value for the default parameter, the programmer-supplied value is used.
 
  
The programmer can extend an existing function or procedure by adding some parameters that have default value instead of writing an identical method with different parameters.
+
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.
  
Beware:
+
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.
Once in a parameter list an optional parameter is defined, all following parameters have to be optional, too.
 
A mandatory parameter must not have a later position than an optional parameter.
 
  
== Example <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;
 +
 
 +
</syntaxhighlight>
  
uses SysUtils, DateUtils;
+
Prawidłowe sposoby korzystania z funkcji SumaLiczb i jej wyniki:
  
function deadlineDay(day: integer; month: integer = 0): TDateTime;
+
<syntaxhighlight lang=pascal>
var
+
SumaLiczb ( 0, 1)       // 0 + 1 + 0 +  7 =  8
  n: TDateTime;
+
SumaLiczb ( 0, 1, 3)    // 0 + 1 + 3 +  7 = 11
  y, m, d: word;
+
SumaLiczb ( 0, 1, 3, 10) // 0 + 1 + 3 + 10 = 14
begin
+
 
  n := now();
+
</syntaxhighlight>
  DecodeDate(n, y, m, d);
+
 
  if month = 0 then
+
Nieprawidłowy sposób użycia funkcji SumaLiczb, który spowoduje błąd:
  begin
+
 
    if d > day then
+
<syntaxhighlight lang=pascal>
    begin
+
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)
      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>
  
Default parameter is used in place of the missing trailing parameter in a call
+
Błędny sposób deklarowania funkcji z parametrami domyślnymi:
* in program call <code>deadlineDay(5)</code> effectively calls <code>deadlineDay(5, 0)</code>
+
 
* in program call <code>deadlineDay(5, 1)</code> does indeed call <code>deadlineDay(5, 1)</code>
+
<syntaxhighlight lang=pascal>
 +
Function SumaLiczb ( a, b : integer; c: integer = 0; d : integer = 7; e : integer) : integer;
 +
// po prawej stronie parametru z wartością domyślną należy deklarować wyłącznie inne parametry z wartością domyślną
 +
</syntaxhighlight>

Latest revision as of 18:05, 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łowy sposób użycia funkcji SumaLiczb, który spowoduje 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)

Błędny sposób deklarowania funkcji z parametrami domyślnymi:

Function SumaLiczb ( a, b : integer; c: integer = 0; d : integer = 7; e : integer) : integer;
// po prawej stronie parametru z wartością domyślną należy deklarować wyłącznie inne parametry z wartością domyślną