Func-Objekt

class Func extends Object

Repräsentiert eine benutzerdefinierte oder interne Funktion und bietet eine Schnittstelle, um sie aufzurufen, Parameter an sie zu binden und Informationen über sie oder ihre Parameter abzurufen.

Informationen über andere Objekte, die wie Funktionen aufgerufen werden können, finden Sie unter Funktionsobjekte.

Die Closure-Klasse erweitert Func, definiert aber keine neuen Eigenschaften.

Für jede interne Funktion oder Funktionsdefinition innerhalb des Skripts gibt es eine zugehörige schreibgeschützte Variable, die ein Func-Objekt enthält. Diese Variable wird direkt für den Aufruf der Funktion verwendet, aber ihr Wert kann auch gelesen werden, um die Funktion selbst als Wert abzurufen. Zum Beispiel:

PrüfeFn StrLen
PrüfeFn PrüfeFn

PrüfeFn(fn)
{
    ; Informationen über die übergebene Funktion anzeigen.
    MsgBox fn.Name " ist eine " (fn.IsBuiltIn ? "interne" : "benutzerdefinierte") " Funktion."
}

"FuncObj" wird hier stellvertretend für ein beliebiges Func-Objekt verwendet, da "Func" die Klasse selbst ist.

Zusätzlich zu den von Object geerbten Methoden und Eigenschaften haben Func-Objekte die folgenden vordefinierten Methoden und Eigenschaften.

Inhaltsverzeichnis

Methoden

Call

Ruft die Funktion auf.

FuncObj(Param1, Param2, ...)
FuncObj.Call(Param1, Param2, ...)

Parameter

Param1, Param2, ...

Parameter und Rückgabewerte werden durch die Funktion definiert.

Bemerkungen

Die Call-Methode wird automatisch beim Aufruf eines Wertes verwendet und muss daher nicht explizit angegeben werden.

Bind

Bindet Parameter an die Funktion.

BoundFunc := FuncObj.Bind(Param1, Param2, ...)

Parameter

Param1, Param2, ...

Beliebig viele Parameter.

Rückgabewert

Typ: Objekt

Diese Methode gibt ein BoundFunc-Objekt zurück.

IsByRef

Ermittelt, ob der Parameter ein ByRef-Parameter ist.

Boolesch := FuncObj.IsByRef(ParamIndex)

Parameter

ParamIndex

Typ: Integer

Wenn weggelassen, gibt Boolesch an, ob die Funktion irgendwelche ByRef-Parameter hat. Andernfalls geben Sie die 1-basierte Indexnummer eines Parameters an.

Rückgabewert

Typ: Integer (boolesch)

Diese Methode gibt 1 (true) zurück, wenn der Parameter ByRef ist, andernfalls 0 (false). Wenn ParamIndex ungültig ist, wird eine Ausnahme ausgelöst.

IsOptional

Ermittelt, ob der Parameter ein optionaler Parameter ist.

Boolesch := FuncObj.IsOptional(ParamIndex)

Parameter

ParamIndex

Typ: Integer

Wenn weggelassen, gibt Boolesch an, ob die Funktion optionale Parameter hat. Andernfalls geben Sie die 1-basierte Indexnummer eines Parameters an.

Rückgabewert

Typ: Integer (boolesch)

Diese Methode gibt 1 (true) zurück, wenn der Parameter optional ist, andernfalls 0 (false). Wenn ParamIndex ungültig ist, wird eine Ausnahme ausgelöst.

Bemerkungen

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

Eigenschaften

Name

Gibt den Namen der Funktion zurück.

FunktionName := FuncObj.Name

IsBuiltIn

Gibt 1 (true) zurück, wenn die Funktion eine interne Funktion ist, andernfalls 0 (false).

Boolesch := FuncObj.IsBuiltIn

IsVariadic

Gibt 1 (true) zurück, wenn die Funktion variadisch ist, andernfalls 0 (false).

Boolesch := FuncObj.IsVariadic

MinParams

Gibt die Anzahl der Pflichtparameter zurück.

ParamAnzahl := FuncObj.MinParams

MaxParams

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

ParamAnzahl := FuncObj.MaxParams

Wenn die Funktion variadisch ist, ist ParamAnzahl die Anzahl von Parametern, die die Funktion maximal akzeptieren kann, ohne in den "variadischen*" Parameter überzulaufen.