【发布时间】:2014-03-20 21:58:44
【问题描述】:
我正在 Lua 5.1 中寻找一种与元表进行比较的方法,因此我可以将任何值与表进行比较。如果该值在表中,则返回 true,如果不在表中,则返回 false。像下面这样。
if table == string then
-- does something if string is in the table
end
我知道使用了__eq,但参考手册统计了一些关于确保2 是相同类型并具有相同__eq 功能的信息。要做到这一点,我需要克服这个限制,我不知道如何,甚至不知道它是否可能。
【问题讨论】:
-
您可以重新定义(使用元表)任何其他运算符:
+、-、*、/、%、^、<或if table(string) then. -
table == string是无耻的运算符滥用,例如将*重新定义为减法。将“包含”方法添加到您的表(或者它是元表的)。