當在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