Argument domyślny

Z Wikipedii, wolnej encyklopedii

Argument domyślnydomyślna wartość argumentu – to wartość typu zgodnego z typem pewnego parametru, zdefiniowana przez programistę w deklaracji podprogramu, która zostanie użyta jako argument (parametr aktualny), przypisany do danego parametru (parametru formalnego), w przypadku, gdy w wywołaniu danego podprogramu, nie zostanie wyspecyfikowany argument dla pewnego parametru.

Stosowanie argumentów domyślnych[edytuj | edytuj kod]

Definiując podprogram, zwykle (z wyjątkiem podprogramów bezparametrowych), specyfikuje się listę parametrów, służących do komunikacji danego podprogramu z otoczeniem. W wywołaniu takiego podprogramu z parametrami, kojarzone są odpowiednie argumenty, specyfikowane w instrukcji wywołania, bądź w wywołaniu podprogramu funkcyjnego w wyrażeniu[1]. Większość języków programowania ma tak zdefiniowaną składnię, że wymagane jest wyspecyfikowanie w wywołaniu podprogramu tylu argumentów ile zadeklarowano parametrów podprogramu. Brak specyfikacji któregokolwiek z argumentów, który odpowiadałby pewnemu parametrowi, jest w takim przypadku sygnalizowane jako błąd. Przykładowy język programowania to Pascal[2]. Pewne języki lub implementacje języków dopuszczają jednak definiowanie wartości domyślnych argumentów dla wybranych parametrów, umożliwiających wywołanie podprogramu, z niepełną listą argumentów, tzn. taką listą argumentów, w której pominięto specyfikację tych argumentów, które odpowiadają parametrom ze zdefiniowanymi wartościami domyślnymi argumentów. W tej sytuacji parametr, dla którego nie wyspecyfikowano odpowiadającego mu argumentu, zostanie skojarzony z wartością domyślną, zdefiniowaną w deklaracji parametru.

Zastosowanie argumentów domyślnych:

  • skraca i upraszcza kod źródłowy dla najczęściej stosowanej wartości danego argumentu,
  • ale może prowadzić do błędów.

Specyfikowanie argumentów domyślnych[edytuj | edytuj kod]

Sposób specyfikacji wartości domyślnej argumentu dla pewnego parametru, zależny jest od specyfiki składni danego języka programowania. Specyfikacja ta występuje w deklaracji danego parametru, która to deklaracja najczęściej w językach programowania wysokiego poziomu, stanowi integralną część deklaracji samego podprogramu.

Przykład w języku Ada[3]:

Function talc(x: in INTEGER; y: in INTEGER:=1);

Języki programowania[edytuj | edytuj kod]

Wiele języków programowania wysokiego poziomu nie dopuszcza konstrukcji polegającej na definiowaniu argumentów domyślnych. Nie ma takich możliwości np. język C[4], Icon[5], Modula-2[6] i inne, czy wcześniej wymieniony Pascal[2]. Dla tych języków pojawiają się jednak nowsze implementacje, których autorzy wprowadzają taką możliwość. Przykładem jest język Object Pascal w środowisku Delphi[7]. Wśród języków, w których składnia definiuje taką konstrukcję są m.in. Ada[3], Visual Basic.

Ada[edytuj | edytuj kod]

W języku Ada definiowanie wartości domyślnej argumentu ma analogiczną postać do inicjalizacji zmiennej czy też wartości domyślnej definiowanego typu w tym języku. Ma postać przypisania, tworzonego za pomocą dwuznakowego symbolu tego języka „:=”, po specyfikacji atrybutów danego parametru. Specyfikacje argumentów, dla paramentów ze zdefiniowaną wartością domyślną, mogą zostać pominięte w wywołaniu takiego podprogramu[3].

Object Pascal[edytuj | edytuj kod]

W języku Object Pascal, w porównaniu z Pacalem, wprowadzono m.in. możliwość definiowania argumentów domyślnych. Definicja taka umieszczona zostaje w nagłówku definiowanego podprogramu.

Przykład:

procedure test(a:integer; opcja:integer=1; nazwa:string='pusta');

Jak w powyższym przykładzie widać, wartość domyślną specyfikuje się tak jak w definicji stałej po znaku "=", a nie jak po znakach w przypisaniu ":=". Należy podkreślić, że parametry z wartościami domyślnymi argumentów, muszą być definiowane na końcu listy parametrów danego podprogramu - tzn. nie może po nich wystąpić jakikolwiek parametr obowiązkowy (tj. bez wartości domyślnej)[7].

PHP[edytuj | edytuj kod]

W języku PHP definiuje się wartości domyśle argumentów podobnie jak w większości innych języków, w których dostępna jest tak konstrukcja.

function Przyklad($a, $b= 0)

Python[edytuj | edytuj kod]

Również w języku Python można definiować argumenty domyślne, w nomenklaturze tego języka i literaturze przedmiotu nazywane argumentami opcjonalnymi[8].

Przykład:

def info(element, spacing=10, collapse=1):

Visual Basic[edytuj | edytuj kod]

Przykład deklaracji argumentu domyślnego:

Sub MsgBL(M As String, Optional P As Variant=5)
  ...
End Sub

C++[edytuj | edytuj kod]

Przykład deklaracji argumentu domyślnego:

int pomnoz(int x, int y = 0) {return x*y;}

Zobacz też[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]