|
On 16/01/2015 22:38, Roberto Ierusalimschy wrote:
Is there a reason why the coercion first recognizes the string as representing an int and then "throws away" that info and converts it unconditionally into a float?We want a fast track for integers, so the first check is simply whether both operands are integers. After that check, it is too cumbersome to recheck whether the strings are "integers" and then also do an integer operation. -- Roberto
Thanks for the clarification!I'm not really sure, maybe I just must get used to it, but the whole string->number automatic coercion thing seems to have become a bit overcomplicated. I only relied a few times on this behavior before (pre 5.3), so I wouldn't miss it should you remove it from the language and raise an error whenever a string is used where a number is expected. As it stands now the feature seems to me a bit counterintuitive or at least too convoluted and perhaps can cause more harm than good. Just a gut feeling, though. (my 2c)
Cheers! -- Lorenzo