检查一个表是否有索引(包括 nil 和非 nil 键)

是否有可能检查一个表是否被索引,即使键已经存在?

我研究了 __index 元方法,但它只在使用 nil 值对表进行索引时触发。

点赞
用户2226988
用户2226988

不行。正如 @Egor 所提到的,"捕捉到所有对表的访问的唯一方法就是保持它为空。" 解决方案是不要让值存储在表中,并使用工厂方法(track,见上文)创建表,代理表和代理表元方法。

你也可以把它合并到 Lua 中任意一个类/原型系统的"new"方法中。

2018-06-02 13:34:03