Eine Funktion wurde bereits vorgestellt: main()
- der Startpunkt jedes
D Programmes. Eine Funktion kann einen Wert zurückgeben oder mit void
deklariert
werden, wenn kein Wert zurückgegeben wird. Zusätzlich kann eine Funktion beliebig
viele Argumente akzeptieren:
int addiere(int links, int rechts) {
return links + rechts;
}
auto
RückgabetypWenn der Rückgabetyp als auto
definiert wird, versucht der D Compiler den
Rückgabetyp automatisch zu inferieren. Falls mehrere return
Anweisungen
verwendet werden, müssen diese Ausdrücke kompatible Typen haben.
auto addiere(int links, int rechts) { // gibt `int` zurück
return links + rechts;
}
auto kleinerOderGleich(int links, int rechts) { // gibt `double` zurück
if (links <= rechts)
return 0;
else
return 1.0;
}
Funktionen können optional Standardargumente definieren. Dies erspart die mühsame Arbeit mehrere Funktionen zu deklarieren.
void plot(string text, string farbe = "rot") {
...
}
plot("D ist großartig.");
plot("D ist großartig.", "blau");
Sobald ein Argument einen Standardwert hat, müssen alle folgenden Argumente ebenso einen Standardwert besitzen.
Funktionen können auch innerhalb anderer Funktionen deklariert werden. Diese Funktionen können lokal verwendet werden und sind nicht sichtbar für Andere. Des Weiteren haben diese Funktionen Zugriff auf den Elternbereich:
void fun() {
int lokal = 10;
int geheimeFunktion () {
lokal++; // erlaubt
}
...
Solche verschachtelten Funktionen heißen Delegates und werden bald in Tiefe erklärt.