|
于 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 ..)