[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Lua 5.3: wrong coercion?
- From: Tim Hill <drtimhill@...>
- Date: Sat, 17 Jan 2015 02:29:04 -0800
> On Jan 17, 2015, at 12:29 AM, Alexandre (gaumerie) <firstname.lastname@example.org> wrote:
> I was not expecting that behaviour neither. However, it is consistent with what Roberto told during the conversation about the power (x^y) operator: the result type of the operator should depends only on the operandes types and not the operandes values.
> If string where converted to integer or float according their values in the addition operation, you would have:
> String + Integer -> Integer (if the string represents an integer) or Float (if the string represents a float)
> The current behaviour give:
> String + Integer -> Float
> String + Float -> Float
> in all cases (given that the string represents a valid number) and so there is no surprise about the result type.
For me, the “surprise" is that implicit coercion of a string to an integer behaves differently to explicit coercion (via tonumber()). I’m not saying it’s not according to the spec, just that it’s a bit .. well .. surprising.