当前位置 : 主页 > 网络编程 > lua >

lua – 如何找到餐桌的洗涤剂

来源:互联网 收集:自由互联 发布时间:2021-06-23
是否有测试(或一种神奇的方法)来确定您在脚本中遇到的表是否在此脚本中的其他位置或其他需要的模块中具有元表?这是没有搜索整个代码. 如果你想确切知道: if getmetatable(some_tabl
是否有测试(或一种神奇的方法)来确定您在脚本中遇到的表是否在此脚本中的其他位置或其他需要的模块中具有元表?这是没有搜索整个代码. 如果你想确切知道:

if getmetatable(some_table) ~= nil then
  print "It has a metatable"
else
  print "It doesn't have a metatable"
end

即使通过设置__metatable = false来“隐藏”,它也会检测到metatable.如果你想要尊重这一点并考虑一个“隐藏”的元表根本就没有metatable,你还必须检查false(或者只是写一下getmetatable(some_table)然后……)

(感谢Egor Skriptunoff指出这一点!)

网友评论