Ответ
MoKo 08.11.2014 14:36
$myobj[^myclass::create[$myhash]
$.property1[value1]
]
Практически эквивалентно такому коду:
$myobj[^myclass::create[$myhash]]
$myobj.property1[value1]
Но когда надо задать значение нескольким ствойствам, первая запись смотрится существенно выигрышнее.
[^myclass::create[$myhash] ] - в текущем констекте сохранен объект
[... $.name[value] ] - присвоить полю name переменной текущего контекста значение value.
Почти как при работе с хешом
http://www.parser.ru/docs/lang/?hash.htm
- Не получается изолировать поля/перменные, чтобы был доступ только через свойства объекта но не напрямую. Получается либо-либо., 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