访问类型元表Lua

访问类型元表Lua,lua,Lua,显然,getmetatable可以访问几种类型的元表: getmetatable("") getmetatable({}) getmetatable(newproxy(true)) 但是,看起来似乎无法将其他类型函数的元表放在一边。似乎无法访问数字、布尔值或nil的元表 我还想知道是否可以访问整个表类型的元表。要想做到这一点: ({}) + ({}) 字符串、数字、nil、函数和lightuserdata对于整个类型都有一个元表。表和完整用户数据对于每个实例都有一个元表 从文档中: 表和完整

显然,getmetatable可以访问几种类型的元表:

getmetatable("")
getmetatable({})
getmetatable(newproxy(true))
但是,看起来似乎无法将其他类型函数的元表放在一边。似乎无法访问数字、布尔值或nil的元表

我还想知道是否可以访问整个表类型的元表。要想做到这一点:

({}) + ({})

字符串、数字、nil、函数和lightuserdata对于整个类型都有一个元表。表和完整用户数据对于每个实例都有一个元表

从文档中:

表和完整的用户数据 单个元表 多个表和用户数据可以共享 他们的元表。其他一切价值观 每个类型共享一个元表 类型就是有一个单一的, 所有数字的元表,所有数字的元表 弦乐

没有“表类型元表”,就像没有“此字符串的元表”


字符串类型默认将“字符串”表作为元表;但是您可以使用debug.setmetatable函数.strings等为其他类型设置元表。

默认情况下,数字、布尔值和nil没有元表,因此getmetatable返回nil。不过,您可以使用debug.setmetatable为它们提供一个


没有公共表元表。用户数据也一样,至少种类繁多

谢谢。我只是想知道。