lua中怎么判断一个table中是否包含某个变量/属性/函数

假设Table为obj,要查询的变量/属性/函数为A;

第一种方法:

if obj.A then

--此变量/属性/函数存在,do something

end

 

第二种方法

local state,isError = pcall(function()

  local x = obj.A;

  return type(x) ~= "nil"

end)

if  state and not isError then

--此变量/属性/函数存在,do something

end

报错:一般报错为===>field or property Exit does not exist

原理:pcall是一种调用方法的安全套,将异常吞在里面,而且返回调用是否顺利。有错误的话,pcall会返回false。

 

注:如果查询是否为函数,判断条件可以为  type(x)=="function"

 

posted on 2022-04-15 17:51  _依靠  阅读(2099)  评论(0)    收藏  举报

导航