parser

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

 

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

Не правильно поняли мое видение проблемы

nkostya 28.11.2011 08:50

Проблема возникает не в том, что я забываю привести double к нужному формату, а в:

1. Изначально я знаю тип переменной
2. По ходу кода у меня есть $value и я уже не знаю (и с первого взгляда мне это не важно) тип переменной.
3. Но т.к. я делаю присвоение переменной через [] всегда, то получается что я теряю значение.

Т.е. получается, что если у меня есть $value и я не знаю что это и какие скобки ставить, то при вызове какого-нибудь метода или присвоения другой переменной я теряю ее тип.
^switch[$type]{
^case[double]{
	$value(^sData.double[])
}
^case[int]{
	$value(^Data.int[])
}
^case[DEFAULT]{
	$value[$sData]
}
}

$new_value[$value]
^new_method[$value]
Последние 2 строки кода теряют значение в double. Добавлять при присвоении switch по типу выглядит не разумно.

Получается выхода два:
1. При работе с double в моем коде всегда делать $value[^sData.format[%f]] или с большим количеством знаков
Но при таком подходе при вызове без формата у меня всегда будет куча нулей.

2. Как и в 1 случае, но избавляться от лишних 0
$value(^sData.double[])
$value[^value.format[%f]]
$value[^value.match[\.?0+^$][]{}]
На мой взгляд было бы логично такое поведение:
$double(^sData.double[])

^method[$double]

@method[uData]
В метод придет double, а не stringт как сейчас.

Возможно ли это при учете передачи копии значения, а не ссылки. Или в чем я не прав со своей идеей?