在 Lua 中重写相等运算符时(通过 " __eq
" 元方法),有没有办法仍然检查原始相等性(即不调用重写__eq
,但检查两个表值是否在引用上相同?)我需要这样做来自 C API,但我在那里找不到合适的函数。
例如:
lua_newtable(L);
lua_newtable(L);
assert(!some_comparison());
lua_pushvalue(L,-1);
assert(some_comparison());
Wheresome_comparison()
不调用元__eq
方法。
(请注意lua_compare()
不满足这一点,特别是。我想要一个lua_rawcompare()
,如果你愿意的话 - 或者更确切地说是一个能给我等价的技巧或解决方法。这个想法是为了防止__eq
实现中的无限递归......)