2

如果我有这个构造:

a.key = b

并且 a 都有一个附加的元表,b 有一个附加的元表。然后会调用 b 的 metatable setter 将 key 设置为 b。这是 lua 5.3.0 的错误吗?

编辑: a 和 b 是字符串。

4

1 回答 1

2

表和完整的用户数据具有单独的元表(尽管多个表和用户数据可以共享它们的元表)。所有其他类型的值每个类型共享一个元表;也就是说,所有数字都有一个元表,所有字符串都有一个元表,等等。默认情况下,一个值没有元表,但字符串库为字符串类型设置了一个元表(参见第 6.4 节)。

来自文档的回答。这是一个特性:a 和 b 是字符串,因此共享它们的元表。

于 2015-04-04T18:32:22.193 回答