【发布时间】:2016-09-27 12:28:05
【问题描述】:
当在 Lua 中重写相等运算符时(通过“__eq”元方法),有没有办法仍然检查原始相等性(即不调用重写的 __eq,但检查两个表值是否引用一样吗?)我需要从 C API 中执行此操作,但在那里找不到合适的函数。
例如:
lua_newtable(L);
lua_newtable(L);
assert(!some_comparison());
lua_pushvalue(L,-1);
assert(some_comparison());
其中some_comparison() 不调用__eq 元方法。
(请注意lua_compare() 不满足这一点,特别是。我想要一个lua_rawcompare(),如果你愿意的话 - 或者更确切地说是一个技巧或解决方法,它会给我等价物。这个想法是为了防止无限递归__eq 实现...)
【问题讨论】:
标签: lua comparison lua-api c-api