Funktionen

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ückgabetyp

Wenn 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;
}

Standardargumente

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.

Lokale Funktionen

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.

In der Tiefe

rdmd playground.d