2020新年第一坑——number变string
【摘要】
推荐阅读:
我的CSDN 我的博客园 QQ群:704621321 我的个人博客
今天是正月初三,早上新闻说因为新型冠状病毒的影响延迟...
推荐阅读:
今天是正月初三,早上新闻说因为新型冠状病毒的影响延迟上班,这不,下午游戏就出问题了,提前远程加个小班了。在大佬的指导下,终于发现了这个潜伏已久的问题。
问题如下:
有一个table,结构如下:
从输出来看,key值类型为number,如果要取key为1010的值,只需要遍历table,判断key==1010,代码如下:
for k,v in pairs(table)do
if k==1010 then
--TODO
end
end
- 1
- 2
- 3
- 4
- 5
期望结果是能取到1010对应得到值,但事实上是,找到对应的key。
原因:
当lua的key类型为number时会自动转换为string
排查过程:
table表内容,输出key对应的value。期望输出的key为1010,实际输出结果为“1010”。猜测:当lua的key类型为number时会自动转换为string。为了进一步确定,又输出了type(key),结果如下:
事实证明:猜测是正确的。
正确做法:
在lua中应时刻谨记:string和number比较出错,一定要记得转换
for k,v in pairs(table)do
if tonumber(k)==1010 then
--TODO
end
end
- 1
- 2
- 3
- 4
- 5
文章来源: unity3d.blog.csdn.net,作者:爱上游戏开发,版权归原作者所有,如需转载,请联系作者。
原文链接:unity3d.blog.csdn.net/article/details/104093744
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)