Optionale Argumente
In einigen Sprachen können einige Argumente bei einigen Aufrufen auch weggelassen werden. Das Aufgerufene nimmt dann für das weggelassene Argument einen bestimmten für den zugehörigen Parameter festgelegten Vorgabewert (default value ) an.
In einer an das DIN angelehnten Terminologie spricht man auch von einem „Fehlwert“, also einem Wert, der bei fehlender Angabe verwendet wird. Das englische Nomen “default ” kann das Versagen, etwas (durch Pflicht oder Gesetz) verlangtes zu tun, bedeuten. Es kann auch das Versagen bei der rechtzeitigen Zahlung von Schulden (die Nichtzahlung), das Versagen beim rechtzeitigen Erscheinen vor Gericht (das Nichterscheinen vor Gericht) oder das Versagen der Teilnahme oder Fertigstellung bei einem Wettbewerbstermin (das Nichtantreten im Sport) bedeuten. Es steht auch veraltet für „Fehler“ oder allgemein für einen Mangel.
Es gibt auch ein Verb “to default ” mit der Bedeutung „nicht erscheinen“, „nicht antreten“ oder „säumig sein“ (“to default in one's payments ” „seinen Zahlungsverpflichtungen nicht nachkommen“).
Das Wort stammt vom mittelenglischen “defaute ”, “defaulte ”, welches vom altfranzösischen »defaillir « stammt, das „fehlen“ oder „versagen“ bedeutet und sich aus der Vorsilbe »de « und dem Verb »faillir« (versagen) zusammensetzt.
Hier ist aber seine Bedeutung in der Datenverarbeitung relevant, bei der es eine Annahme bezeichnet, die in einem Prozeß gemacht wird, wenn keine expliziten Angaben (vom Benutzer) gemacht werden, in diesem Sinne kann es auch als eine Voreinstellung (vorgegebene Einstellung) bezeichnet werden. Diese Bedeutung ergibt sich aus den anderen vermutlich über die Wendung “in default of …” („beim Fehlen von …“). Ein “judgement by default ” ist ein Versäumnisurteil, “to win by default ” bedeutet „kampflos gewinnen“. “in default of ” oder “due to default of ” bedeutet „in Ermangelung von“. In der Datenverarbeitung gibt es auch das Verb “to default to something ”, das die Voreinstellung eines Wertes angeben kann, wie in “the number defaults to 0. ” („Die Voreinstellung für die Zahl ist 0.“) und das Adjektiv “default ” zur Kennzeichnung eines Vorgabewerts “The default number ist 0. ” („Die Vorgabezahl ist 0.“).
Eine Abbildung "w" soll beispielsweise die Wurzel aus einer Zahl berechnen. Es sei daran erinnert, daß die Zahl, deren Wurzel berechnet wird, der Radikand (engl. radicand )ist und die Zahl, die angibt, die wievielte Wurzel berechnet werden soll, Wurzelexponent (engl. index ) genannt wird.
Eine Wurzel.------------------
Wurzelexponent |
---------------. |
\ |
\ | Radikand
\|
Soll die Wurzel eines Radikanden berechnet werden, muß im Allgemeinen also auch der Wurzelexponent angegeben werden. Weil aber die häufigste Wurzel die Quadratwurzel ist, liegt es nahe, den Wert "2" anzunehmen, wenn kein Wurzelexponent angegeben wird. Das verträgt sich auch mit der Konvention beim Wurzelziehen in der Mathematik, den Wurzelexponenten nicht anzugeben, wenn dieser gleich Zwei ist.
Eine Quadratwurzel.------------------
|
---. |
\ |
\ | Radikand
\|
Die Informationen zu den beiden Parametern werden in der folgenden Tabelle festgehalten. Für den Parameter "Wurzelexponent" ist ein Vorgabewert festgelegt. Daher kann das zugehörige Argument auch weggelassen werden.
wurzelparameter.tab"Name", "Vorgabewert"
"Wurzelexponent", "2"
"Radikand", -
Wenn ein Argument weggelassen wurde, dann muß aber auch klar werden, zum welchem Parameter das weggelassene Argument gehört. Es gibt verschiedene Möglichkeiten, wie das Weglassen von Argumenten gekennzeichnet werden kann. Im Falle der Quadratwurzel wird eine bestimmte graphische Figur gezeichnet, in der der Wurzelexponent eine bestimmte Position hat. Dadurch ist es erkennbar, ob an dieser Stelle eine Zahl steht oder nicht. Im Falle von Texten einer formalen Sprache hat man diese Möglichkeit selten. Hier gibt es aber andere Wege, um klarzustellen, welche Argumente weggelassen wurden.
Weglassen hinterer Argumente
Wenn die Wurzelabbildung "w" so spezifiziert ist, daß der zweite Parameter den Wurzelexponenten angibt, dann bedeutet die Schreibweise "w( 7, 3 )" beispielsweise die dritte Wurzel aus Sieben. Die Quadratwurzel aus Sieben ist dann "w( 7, 2 )". Sie kann auch als "w( 7 )" geschrieben werden, wenn die Abbildung so definiert wurde, daß die Angabe des Arguments für den zweiten Parameter weggelassen werden kann. Dadurch ist dann nämlich klar, daß das angegebene Argument "7" für den ersten Parameter (also den Radikanden) steht.
Der Radikand kann in diesem Fall natürlich nicht weggelassen werden. Wäre es auch noch möglich das erste Argument wegzulassen, dann wüßte man bei der Schreibweise des Aufrufs mit nur einem Argument nämlich nicht, ob nun das Argument für den ersten oder für den zweiten Parameter weggelassen wurde. Deswegen muß bei dieser Schreibweise allgemein vereinbart werden, daß Argumente nur von hinten nach vorne voranschreitend weggelassen werden können.
Weglassen mit Kommas
Argumente können an beliebigen Stellen weggelassen werden, wenn Kommas die einzelnen Argumente voneinander abgrenzen und dabei auch Nichts oder Leerraum anstelle von Argumenten erlaubt sind. Damit ist es beispielsweise möglich, die Wurzelabbildung "w" auch so zu spezifizieren, daß der erste Parameter den Wurzelexponenten angibt. Dann bedeutet die Schreibweise "w( 3, 7 )" beispielsweise die dritte Wurzel aus Sieben und die Quadratwurzel aus Sieben ist dann "w( 2, 7 )". Sie kann in diesem Fall als "w( , 7 )" geschrieben werden. Nach der runden Klammer und vor dem ersten Komma steht also anstelle eines Arguments gar nichts oder nur Leerraum. Hier kennzeichnet das Komma die Grenze zwischen dem ersten und dem zweiten Parameter und es wird klar, daß das Argument für den ersten Parameter weggelassen wurde.
Weglassen bei benannten Parametern
In manchen Sprachen können Parameter benannt werden. Hier ist die Rolle jedes Parameters durch seinen Namen eindeutig bestimmt. Wenn die Argumente dann durch die Parameternamen beschriftet werden, ist es zweifelsfrei erkennbar, welche Argumente angegeben und welche weggelassen werden.
In diesem Fall würde die dritte Wurzel aus Sieben beispielsweise als "wurzel( wurzelexponent := 3, radikand := 7 )" oder als "wurzel( radikand := 7, wurzelexponent := 3 )" geschrieben. Die Quadratwurzel aus Sieben könnte man dann als "wurzel( radikand := 7, wurzelexponent := 2 )" schreiben. Sie kann aber dann auch durch Weglassen des Wurzelexponenten als "wurzel( radikand := 7 )" geschrieben werden. Durch die Benennung wird es hierbei eindeutig erkennbar, daß der Radikand angegeben wurde und es der Wurzelexponent ist, der weggelassen wurde.