Язык скриптования сайтов Parser 3

Opis


is. Проверка типа


объект is тип   


Возвращает результат "истина/ложь" в зависимости от того, относится ли левый операнд к заданному типу.

Полезно использовать этот оператор в случае, если переменная может содержать единственное значение или набор значений (хеш), а также для проверки определенности методов.

Тип - имя типа, им может быть системное имя (hash, junction, …), или имя пользовательского класса.



Простая проверка типа

@main[]

$date[1999-10-10]

#$date[^date::now[]]

^if($date is string){

    ^parse[$date]

}{

    ^print_date[$date.year;$date.month;$date.day]

}

@parse[date_string][date_parts]

$date_parts[^date_string.match[(\d{4})-(\d{2})-(\d{2})][]]

^print_date[$date_parts.1;$date_parts.2;$date_parts.3]

@print_date[year;month;day]

Работаем с датой:<br>

День:  $day<br>

Месяц: $month<br>

Год:   $year<br>


В этом примере в зависимости от типа переменной $date либо выполняется синтаксический анализ строки, либо методу print_date передаются поля объекта класса date:

Проверка наличия в переменной кода

Т.к. оператор def не считает переменные, содержащие код, определенными, для проверки наличия в переменной кода необходимо использовать is:

$something{^do[]}

^if($something is junction){

#   выполнение кода

    $something

}

Проверка определенности метода

Значение $имя_метода, это тоже junction, поэтому проверять существование метода необходимо также оператором is, а не def:

@body[]

тело


@main[]

Старт

^if($body is junction){

   ^body[]

}{

   Метод «body» не определен!

}

Финиш



Содержание раздела