[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
**Subject**: **Re: Arithmetic on strings**
**From**: Roberto Ierusalimschy <roberto@...>
**Date**: Wed, 13 Jun 2012 10:57:22 -0300

> It seems to be impossible to override arithmetic operators on
> strings. One can for example set the __add metamethod, but
> it only gets called when at least one of the strings cannot be
> coerced to a number. For example:
>
> getmetatable''.__add = function(x,y) return x..y end
> 'a'+'b' --> 'ab', fine
> '1'+'2' --> 3
In general, arithmetic metamethods are only called when Lua "does not
know what to do". Lua "does know what to do" with '1' + '2'.
(Probably the right thing to do would be to elliminate coersion from
strings to numbers altogether...)
-- Roberto