Argument opcjonalny to w języku komputerowym taki argument, który może zostać specyfikowany w wywołaniu podprogramu, lub może zostać pominięta specyfikacja wartości tego argumentu. Definiując podprogram[a], zwykle do komunikacji podprogramu z otoczeniem, programista równocześnie deklaruje odpowiednie parametry tego podprogramu. Najczęściej w wywołaniu takiego podprogramu, należy specyfikować listę argumentów, które zostaną skojarzone z parametrami i użyte w wykonaniu tego podprogramu. Argumenty te są wymagane i muszą być podane w kodzie źródłowym. Liczba argumentów wymaganych musi być zgodna z liczbą parametrów zawartych w definicji podprogramu, a brak takiego argumentu będzie sygnalizowany przez translator jako błąd. Istnieją jednak języki, których składnia umożliwia definiowanie argumentów opcjonalnych. Jeżeli taki argument zostanie podany na liście argumentów, to wartość tego argumentu zostanie użyta w podprogramie. W braku argumentu, programista musi przewidzieć inny sposób uzyskania pożądanej wartości.
Języki programowania dają możliwość stosowania dwóch rodzajów argumentów opcjonalnych:
Przykładem deklaracji argumentu opcjonalnego jest deklaracja i definicja prostego podprogramu w języku VBA:
Sub MsgBL(M As String, Optional P As Variant)
If IsMissing(P) Then
MsgBox(M)
Else
If P Then MsgBox(M)
End If
End Sub
Jak widać w powyższym przykładzie parametr P jest zadeklarowany z modyfikatorem Optional
. Oznacza to, że danemu parametrowi odpowiada w wywołaniu pewien argument opcjonalny i każde z poniższych wywołań tej procedury jest prawidłowe[c]:
Call MsgBL("Komunikat")
Call MsgBL("Komunikat", True)
W takim przypadku – braku wartości domyślnej argumentu – niezbędny jest mechanizm kontroli dostępności argumentu, gdyż odwołanie do nie przekazanego do podprogramu argumentu spowodowałoby wystąpienie błędu. Nie ma takiego problemu dla argumentów domyślnych – przy braku argumentu zostanie użyta wartość domyślna. W tym konkretnym przykładzie, w języku VBA, taki mechanizm zapewnia funkcja wbudowana IsMissing
, która zwraca wartość True
, jeżeli nie wyspecyfikowano argumentu dla parametru zadeklarowanego frazą Optional
.
W wielu językach programowania argumentem opcjonalnym może być tylko taki argument, który posiada przypisaną wartość domyślną. Tak jest np. w PHP, gdzie deklaracja parametru opcjonalnego polega na wyspecyfikowaniu wartości domyślnej.
function Przyklad($a, $b= 0)
{
}
<ref>
dla grupy o nazwie „uwaga”, ale nie odnaleziono odpowiedniego znacznika <references group="uwaga"/>