Func-Objekt [v1.1.00+]

Repräsentiert eine benutzerdefinierte oder interne Funktion, die über das Skript aufgerufen werden kann. Func() gibt ein Objekt dieses Typs zurück.

Informationen zu anderen Objekten, die wie Funktionen aufgerufen werden können, finden Sie unter Funktionsobjekte.

Eine Referenz zu einem Func-Objekt wird auch als Funktionsreferenz bezeichnet. Um eine Funktionsreferenz abzurufen, verwenden Sie wie folgt die Func-Funktion:

; Ruft eine Referenz zu der Funktion "StrLen" ab.
fn := Func("StrLen")

; Zeigt Informationen über die Funktion an.
MsgBox % fn.Name "() ist " (fn.IsBuiltIn ? "integriert." : "benutzerdefiniert.")

Inhaltsverzeichnis

Methoden

Call

Ruft die Funktion auf.

Func.Call(Param1, Param2, ...)  ; Benötigt [v1.1.19+]
Func.(Param1, Param2, ...)  ; Alte Form - veraltet
Param1, Param2, ...
Parameter und Rückgabewerte werden durch die Funktion definiert.

[v1.1.07+]: %Func%() kann verwendet werden, um eine Funktion via Name oder Referenz aufzurufen, oder um ein Objekt aufzurufen, das die __Call-Metafunktion implementiert. Dies sollte anstelle von Func.() verwendet werden, wo auch immer das möglich ist.

Bind [v1.1.20+]

Bindet Parameter an die Funktion und gibt ein BoundFunc-Objekt zurück.

BoundFunc := Func.Bind(Param1, Param2, ...)
Param1, Param2, ...
Beliebig viele Parameter.

Informationen und Beispiele finden Sie unter BoundFunc-Objekt.

IsByRef

Stellt fest, ob der Parameter ein ByRef ist.

BoolescherWert := Func.IsByRef(ParamIndex)
ParamIndex
Optional: Die 1-basierte Indexnummer eines Parameters. Lässt man diesen Parameter weg, kennzeichnet BoolescherWert, ob die Funktion überhaupt ByRef-Parameter hat.

Der Rückgabewert ist eine leere Zeichenkette, wenn die Funktion integriert oder ParamIndex ungültig ist; ansonsten kennzeichnet ein boolescher Wert, ob der Parameter ein ByRef ist.

IsOptional

Stellt fest, ob der Parameter optional ist.

BoolescherWert := Func.IsOptional(ParamIndex)
ParamIndex
Optional: Die 1-basierte Indexnummer eines Parameters. Lässt man diesen Parameter weg, kennzeichnet BoolescherWert, ob die Funktion überhaupt optionale Parameter hat.

Der Rückgabewert ist eine leere Zeichenkette, wenn ParamIndex ungültig ist; ansonsten kennzeichnet ein boolescher Wert, ob der Parameter optional ist.

Parameter müssen nicht offiziell deklariert werden, wenn die Funktion variadisch ist. Interne Funktionen werden unterstützt.

Eigenschaften

Name

Gibt den Funktionsnamen zurück.

FunktionName := Func.Name

IsBuiltIn

Gibt True zurück, wenn die Funktion eine interne Funktion ist, ansonsten False.

BoolescherWert := Func.IsBuiltIn

IsVariadic

Gibt True zurück, wenn die Funktion variadisch ist, ansonsten False.

BoolescherWert := Func.IsVariadic

MinParams

Gibt die Anzahl der benötigten Parameter zurück.

ParamAnzahl := Func.MinParams

MaxParams

Gibt die Anzahl der offiziell deklarierten Parameter einer benutzerdefinierten Funktion oder die maximale Anzahl der Parameter einer internen Funktion zurück.

ParamAnzahl := Func.MaxParams

Wenn die Funktion variadisch ist, kennzeichnet ParamAnzahl die maximale Anzahl an Parametern, die von der Funktion akzeptiert werden kann, ohne einen Überlauf zu riskieren.

Funktionen

Func [v1.1.00+]

Ruft eine Funktionsreferenz ab.

Referenz := Func(FunktionName)

FunktionName ist der Name einer Funktion, deren Referenz abgerufen werden soll, und muss explizit im Skript definiert sein.

Diese Funktion gibt eine Referenz zu FunktionName zurück. Wenn FunktionName im Skript nicht explizit vorhanden ist (mit Mitteln wie #Include oder einen nicht-dynamischen Aufruf einer Bibliotheksfunktion), wird eine 0 zurückgegeben.

Diese Funktion kann genutzt werden, um die Funktion aufzurufen oder um Informationen wie die minimale und maximale Anzahl von Parametern abzurufen.

Die folgende Funktion ruft eine Funktionsreferenz ab und zeigt Informationen über diese Funktion an:

fn := Func("StrLen")
MsgBox % fn.Name "() ist " (fn.IsBuiltIn ? "integriert." : "benutzerdefiniert.")