Herunterladen Inhalt Inhalt Diese Seite drucken

Microtronics myDatalogEASY IoTmini Benutzerhandbuch Seite 201

Inhaltsverzeichnis

Werbung

main()
{
new v = 5
new f = faculty(v)
}
faculty(n)
{
assert n >= 0
new result = 1
while (n > 0)
result *= n--
return result
}
Egal welchen (positiven) Wert die Variable "n" am Beginn der "while"-Schleife hatte, am Ende der Funktion
wird "n" Null sein. Am Beispiel der Funktion "faculty" wird der Parameter als Wert ("by value") übergeben,
damit ist eine Änderung der Variable "n" nur lokal in der Funktion "faculty" gültig. Mit anderen Worten, die
Variable "v" in der Funktion "main()" hat vor und nach dem Aufruf der Funktion denselben Wert.
Argumente können als Wert ("by value") oder als Referenz ("by reference") übergeben werden. Einem
Funktionsargument, das als Referenz übergeben werden soll, muss als Präfix "&" dem Namen vorangestellt
werden. Als Standard werden der Funktion die Argumente als Wert übergeben.
Beispiel:
swap(&a, &b)
{
new temp = b
b = a
a = temp
}
Um eine Array einer Funktion zu übergeben, fügen Sie ein Klammernpaar ("[]") dem Namen des Arguments
an. Es kann auch zusätzlich die Anzahl der Einträge angegeben werden. Dies verbessert die
Fehlererkennung des Parsers des Compilers.
Beispiel:
addvector(a[], const b[], size)
{
for (new i = 0; i < size; i++)
a[i] += b[i]
}
Arrays werden immer als Referenz übergeben.
Hinweis: Das Array "b" im oben gezeigten Beispiel wird in der Funktion nicht verändert. Dieses
Funktionsargument wurde als "const" deklariert, um dies explizit zu machen. Zusätzlich zur
verbesserten Fehlererkennung, erlaubt es dem Compiler einen effizenteren Code zu generieren.
Rev. 02
Kapitel 13 Device Logic (Pawn)
201

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis