|
|
||
|
于 2012-6-13 19:21, Dirk Laurie 写道:
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
No, you can't do such in Lua. Lua would automatically call tonumber on strings when doing arithmetic operation. and the same applied to concat operation on numbers. i.e. "3" + "4" => 7 3 .. 4 => "34" (note the space between number and ..)