parser

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

 

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

Интересно, а как лучше?

moko 08.02.2021 16:35

В топике был косвенно затронут достаточно тонкий момент, различие в работе метода при вызовах $v[^test[]] и $v(^test[]). Во втором случае внутри метода test не происходит автоматического преобразования чисел в строку. Но вот насколько нужно это отличие? У меня только в специальных тестах этого случая разница есть. Ну добавится дополнительное преобразование из числа в строку и обратно. Но зато поведение будет унифицировано и чуть логичнее.
@main[]
$n(1)
$v(^test1[]) "$v" $v.CLASS_NAME
$v(^test2[]) "$v" $v.CLASS_NAME

@test1[]
-^first[]

@test2[]
-^n.int[]

@first[]
    $result(^n.int[])
Результат в 3.4.4 (так себе логичность):
"-1" double
"1" int

Результат начиная с 3.4.5 (сохраняется тип значения, строковая часть выкидывается, переделка в рамках тикета #1104):
"1" int
"1" int

Можно сделать (очевиднее, но теоретически не 100% совместимо):
"-1" double
"-1" double