Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Dmitry 18.12.2022 15:15
Геттеры и сеттеры умеют в различение контекста(типа/класса) при обращенииУ пользовательских классов можно определить специальное свойство @GET[], которое будет вызываться при обращении к классу/объекту этого класса в определённых контекстах вызова, например: в скалярном контексте, в выражении и т.п. Если у этого свойства определён параметр, то через него будет передан тип обращения, который может принимать одно из следующих значений: def, expression, bool, double, hash, table или file.
# умозрительную околесицу написал на основе кода в документации @CLASS MyClass @create $arg[0] @GET[arg] ^switch[$arg]{ ^case[hash]{$result[^hash::create[$arg]]} ^case[bool]{$result(true)} ^case[def]{$result(true)} ^case[expression;double]{$result($t)} ^case[DEFAULT]{^throw[MyClass;Unsupported type of '$arg']} } #----------