Lua中不同对象如何设置不一致的元表?
- 内容介绍
- 文章标签
- 相关推荐
本文共计729个文字,预计阅读时间需要3分钟。
我无法理解为什么这些示例中的 `__index` 元方法的行为存在差异:`A+%3D+setmetatable%7B%7D%2CA%7D`。下面是简化后的代码内容:
luaA=setmetatable({}, A)A:speak=function() print(I'm an A) end
An_A=AAn_A:speak()
这段代码尝试定义一个名为 `A` 的表,并使用 `setmetatable` 将它作为自己的元表。然后,在 `A` 表中定义了一个名为 `speak` 的方法。接着,创建了一个名为 `An_A` 的变量,它实际上是 `A` 的别名。调用 `An_A:speak()` 应该输出 I'm an A。
代码中并没有明显的错误,所以它应该能够正常工作。如果存在错误,可能是由于 Lua 脚本的其他部分或者上下文环境导致的。请确保整个脚本环境正确,并且没有其他代码干扰这个简单的示例。
本文共计729个文字,预计阅读时间需要3分钟。
我无法理解为什么这些示例中的 `__index` 元方法的行为存在差异:`A+%3D+setmetatable%7B%7D%2CA%7D`。下面是简化后的代码内容:
luaA=setmetatable({}, A)A:speak=function() print(I'm an A) end
An_A=AAn_A:speak()
这段代码尝试定义一个名为 `A` 的表,并使用 `setmetatable` 将它作为自己的元表。然后,在 `A` 表中定义了一个名为 `speak` 的方法。接着,创建了一个名为 `An_A` 的变量,它实际上是 `A` 的别名。调用 `An_A:speak()` 应该输出 I'm an A。
代码中并没有明显的错误,所以它应该能够正常工作。如果存在错误,可能是由于 Lua 脚本的其他部分或者上下文环境导致的。请确保整个脚本环境正确,并且没有其他代码干扰这个简单的示例。

