|
Am 26.07.2013 17:17 schröbte Andrew Starks:
Within my own Lua code, I often want to turn an object into a plain number. The meta-methods can effectively do most of what I want, but not when I'm dealing with relational operators when one side of is an actual number. Finally, __tonumber just feels... missing. I even had to triple check that it wasn't in 5.2, lest I embarrass myself. :)
But Lua 5.2 *does* have support for mixed arguments in relational operations :-p
local o = { n = 1 } local mt = { __lt = function( a, b ) if type( a ) == "table" then a = a.n end if type( b ) == "table" then b = b.n end return a < b end, } setmetatable( o, mt ) if o < 2 then print( "o < 2" ) end if o >= 1 then print( "o >= 1" ) end Philipp