parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Приоритет операторов перед аргументами

G_Z 15.11 10:04

Несколько раз подобное обсуждалось, но либо я запамятовал, либо раньше не замечал всей глубины картины:
@main[]
$obj[^obj::create[]]

^obj.print[$obj:lnk]

@lnk[]
operator


@CLASS
obj

@OPTIONS
locals

@create[]

@print[lnk]
^lnk[]

@lnk[]
obj method
Результат:
operator

Понятно, что оператор — конструкция приоритетная, но чтобы параметры перебивать…

Максимально стараюсь использовать классы и везде явно указываю класс или $self, но тут и это не поможет.

Выходит, в данном случае вообще нет способа обратиться к параметру, а не к оператору.
И появление оператора, одноимённого параметру метода, сломает код объекта.