reflection Alt ←

Статический метод :is

Проверка типа. [3.4.4]

^reflection:is[имя_элемента;тип]
^reflection:is[имя_элемента;тип;контекст]

Метод возвращает результат «истина / ложь» в зависимости от того, относится ли элемент с указанным именем к заданному типу.

Метод расширяет функциональность оператора is, позволяя проверить, является ли параметр кодом. Для проверки того, является ли параметр кодом (передается в фигурных или круглых скобках), нужно указать в качестве типа специальное значение code. Для проверки того, является ли параметр ссылкой на метод, нужно указать в качестве типа специальное значение method.

По умолчанию контекстом является контекст вызова метода is. Если метод принимает неопределенное число параметров, в качестве контекста необходимо указать переменную, в которой они переданы.

Проверка типа параметра

@main[]
^method[string]
^method{code}
^method[$method]
^another-method[$method]

@method[param]
^if(^reflection:is[param;junction]){
	Param is ^if(^reflection:is[param;code]){code}{method reference}
}{
	Param is not code or method reference
}

@another-method[*params]
^if(^reflection:is[0;method;$params]){
	First param is method reference
}