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
}



Copyright © 1997–2024 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 06.06.2024