Не правильно поняли мое видение проблемы
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т как сейчас.
Возможно ли это при учете передачи копии значения, а не ссылки. Или в чем я не прав со своей идеей?
- Проблемы с double, nkostya 27.11.2011 14:50 / 27.11.2011 14:51
- http://www.parser.ru/forum/?id=47818, Misha v.3 [M] 28.11.2011 01:16 / 28.11.2011 01:28
- Не правильно поняли мое видение проблемы, nkostya 28.11.2011 08:50
- Ответ, G_Z [M] 28.11.2011 13:00
- Ответ, nkostya 28.11.2011 13:19
- Ответ, Misha v.3 [M] 28.11.2011 10:20 / 28.11.2011 10:23
- Ответ, Vint 27.11.2011 15:12
- Ответ, nkostya 27.11.2011 16:14 / 27.11.2011 16:15
- Уточнение, nkostya 27.11.2011 15:00