parser

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

 

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

Все правильно...

Sumo 09.01.2007 20:09 / 09.01.2007 20:17

Дело в том, что не переменная содержит ссылку, а она передана по сслыке. При присвоении ($a(2)) фактически создается новый объект (переменная $a теперь ссылается на область памяти, содержащую "2") и ссылка с объектом ($t) теряется.

А вот так будет работать:
@fun[a]
  $a.value(3)

@main[]
  $var[ $.val(1) ]
  ^func[$var]
  $var.value  
И еще. Как я понимаю Парсер производит неявные преобразования простых типов (string, int, double) при передаче параметров:
@main[]
  $var(1)
  ^func1[$var]

  $var[1]
  ^func2($var)

@func1[a]
  $a <- здесь уже содержится строка, а не число

@func2[a]
  $a <- а здесь на прийдет не строка "1", а число 1