У Парсера объектная модель без жесткой инкапсуляции...
Sumo 08.11.2014 21:07
Такая схема используется и в других языках, например, в Питоне. Предполагается, что программисты способны самостоятельно придумать соглашения какие имена относить к внешнему интерфейсу, а какие к внутреннему. Обычно для внутренних переменных и методов используют имена, начинающиеся с подчеркивания. Этого более чем достаточно для любых задач.
В языках, где есть модификаторы доступа, так или иначе работает интроспекция и добраться до внтуренностей любого объекта можно в любом случае. Поэтому никакого практического смысла в вашем предложении нет.
- Не получается изолировать поля/перменные, чтобы был доступ только через свойства объекта но не напрямую. Получается либо-либо., AndySobb 07.11.2014 18:21
- Ответ, MoKo 07.11.2014 21:07
- А это вообще отвал башки => $myobj[^myclass::create[$myhash] $.property1[value1] ..., Andrey 08.11.2014 00:37
- Ответ, MoKo 08.11.2014 14:36
- Но вообще по ощущению не хватает именно локальных переменных в рамках класса/объекта но доступного между методами и обработчиками свойств. Есть ли весомые основания для их отсутствия. Добавить к @OPTIONS class_locals напримэр (-), AndySobb 08.11.2014 00:01
- Ответ, MoKo 08.11.2014 14:58
- Вообще конкретно это не критично, это все в рамках изучения тонкостей, проще просто отбить служебные переменные каким-то символом, чтобы не зацепить (-), AndySobb 07.11.2014 23:57
- $caller уже попробовал - мне понравилось :) можно делать интересные рекурсии. (-), AndySobb 07.11.2014 23:49
- Не совсем понял обход с ^reflection:uid[$self] - можно на примере?, AndySobb 07.11.2014 23:44