obj_class =
{
__index = function(obj, func)
return function(...)
return getmetatable(obj)[func](obj, ...)
end
end,
add = function(obj, x, y)
obj.x = obj.x + x
obj.y = obj.y + y
end
}
local obj = setmetatable({ x = 1, y = 2 }, obj_class)
obj.add(200, 400) -- yay!
print(("x = %.9g, y = %.9g"):format(obj.x, obj.y))
b2JqX2NsYXNzID0KewoJX19pbmRleCA9IGZ1bmN0aW9uKG9iaiwgZnVuYykKCQlyZXR1cm4gZnVuY3Rpb24oLi4uKQoJCQlyZXR1cm4gZ2V0bWV0YXRhYmxlKG9iailbZnVuY10ob2JqLCAuLi4pCgkJZW5kCgllbmQsCgoJYWRkID0gZnVuY3Rpb24ob2JqLCB4LCB5KQoJCW9iai54ID0gb2JqLnggKyB4CgkJb2JqLnkgPSBvYmoueSArIHkKCWVuZAp9Cgpsb2NhbCBvYmogPSBzZXRtZXRhdGFibGUoeyB4ID0gMSwgeSA9IDIgfSwgb2JqX2NsYXNzKQpvYmouYWRkKDIwMCwgNDAwKSAtLSB5YXkhCnByaW50KCgieCA9ICUuOWcsIHkgPSAlLjlnIik6Zm9ybWF0KG9iai54LCBvYmoueSkp