parser

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

 

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

фича, конечно

Александр Петросян (PAF) 25.04.2007 00:42

тонкая ;)

^method(100) вы передаёте константу. специально оптимизированный случай.

^method($o) вы передаёте выражение, которое вычисляется внутри метода всякий раз, что вы обращаетесь к параметру.

документации не противоречит ни то ни другое.
согласно документации передаётся выражение, вычисляемое каждый раз.
в этом смысле 100 — замечательное выражение.

соответственно операции над $i суть операции над временной переменной:
@method[expression]

$expression << эта запись эквивалентна этому:
$value[$expression]
$value
применительно к описанному случаю:
@method[expression]

^expression.div(10) << эта запись эквивалентна этому:
$value[$expression]
^value.div(10)
понятно, что операции над $value никак не затрагивают переданный $expression.

вас просто несколько смущает тот факт, что параметр-выражение "автовычисляется".
мы пытались максимально подробно выразить это в документации и привести яркие примеры.