我需要 userdata 对象来支持方法和索引运算符(带有整数索引)。有没有办法在一个常见的元表中实现这一点,而无需通过函数模拟方法?
我尝试通过将metatable(object).__index
实际方法设置为表以及metatable(metatable(object).__index).__index
实现索引运算符的函数来链接元表。但是,该函数是使用第一个__index
表作为参数调用的,而不是原始对象。__index
这似乎是一个设计疏忽,因为当元方法是一个函数时传递原始对象更有意义。无论如何,有没有办法在不显式检查函数中的方法名称的情况下实现我想要的__index
?