Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Sumo 06.10.2015 16:15 / 06.10.2015 16:16
Я как-то даже тикет заводил в парсеровском Редмайне. Например:@CLASS myHash @IMPLEMENTS hash .... @foreach[key;value;code;separator] ...И потом:
$o[^myHash::create[]] ^if($myHash is hash){ ^myHash.foreach[k;v]{ ... } }Мы декларируем совместимость с каким-то классом, а потом можем проверить его совместимость через is. Т.е. is будет проверять не класс, а интерфейс.
$o[^my::create[]] ^mix3:include_mixin[$o] ^reflection:implements[$o;mix3] <- это можно сделать и в методе include_mixins ^if($0 is mix3){...}Тогда у нас появляется почти множественное наследование и интерфейсы. :)