当在Lua中覆盖相等运算符(通过“__eq
”metamethod)时,是否还有一种方法可以检查基本相等(即不调用覆盖的__eq
,但检查两个表值是否相同?)需要从C API执行此操作,但我无法在其中找到合适的功能。如何检查Lua中的两个值是否基本相等?
例如:
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_rawequal'。 – Sneftel