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   _依靠  阅读(1926)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示