class Func extends Object
Represents a user-defined or built-in function and provides an interface to call it, bind parameters to it, and retrieve information about it or its parameters.
関数のように呼び出すことができる他のオブジェクトについては、関数オブジェクトをご覧ください。
Closure
クラスはFunc
を拡張していますが、新しいプロパティは定義していません。
スクリプト内の各組込み関数または関数定義に対して、Funcオブジェクトを含む対応する読み取り専用変数が存在します。この変数は、関数を呼び出すために直接使われますが、その値を読み込むことで、関数そのものを、値として取り出すこともできます。事例:
InspectFn StrLen InspectFn InspectFn InspectFn(fn) { ; 渡された関数に関する情報を表示する。 MsgBox fn.Name "() is " (fn.IsBuiltIn ? "built-in." : "user-defined.") }
「Func」はクラスそのものなので、「FuncObj」は、任意のFuncオブジェクトのプレースホルダーとして以下使用します。
Funcオブジェクトは、Objectから継承されたメソッドとプロパティに加え、以下の定義済みのメソッドとプロパティを持ちます。
関数を呼び出します。
FuncObj(Param1, Param2, ...)
FuncObj.Call(Param1, Param2, ...)
パラメータと戻り値は、関数で定義されます。
Call」メソッドは、値を呼び出す際に暗黙の了解となっているため、明示的に指定する必要はない。
Binds parameters to the function.
BoundFunc := FuncObj.Bind(Param1, Param2, ...)
パラメータの数は問いません。
型:オブジェクト
This method returns a BoundFunc object.
パラメータがByRefであるかどうかを判定します。
Boolean := FuncObj.IsByRef(ParamIndex)
型:整数
省略された場合、Booleanは、関数が ByRef パラメータを持つかどうかを示します。Otherwise, specify the one-based index of a parameter.
This method returns 1 (true) if the parameter is ByRef, otherwise 0 (false). ParamIndexが無効な場合は、例外が発生します。
パラメータがオプションであるかどうかを判定します。
Boolean := FuncObj.IsOptional(ParamIndex)
型:整数
省略された場合、Booleanは、関数が任意のパラメータを持つかどうかを示します。Otherwise, specify the one-based index of a parameter.
This method returns 1 (true) if the parameter is optional, otherwise 0 (false). ParamIndexが無効な場合は、例外が発生します。
関数が変種である場合、パラメータを正式に宣言する必要はありません。組込機能に対応しています。
関数の名前を返します。
FunctionName := FuncObj.Name
Returns 1 (true) if the function is built-in, otherwise 0 (false).
Boolean := FuncObj.IsBuiltIn
Returns 1 (true) if the function is variadic, otherwise 0 (false).
Boolean := FuncObj.IsVariadic
必要なパラメータの数を返します。
ParamCount := FuncObj.MinParams
ユーザー定義関数の場合は正式に宣言されたパラメータの数、組み込み関数の場合は最大パラメータ数を返します。
ParamCount := FuncObj.MaxParams
関数がvariadicの場合、ParamCountは"variadic*"パラメータに溢れることなく関数が受け入れることができるパラメータの最大数を示します。