概述
推荐阅读:
- 我的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
期望结果是能取到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
最后
以上就是兴奋黑裤为你收集整理的2020新年第一坑——number变string的全部内容,希望文章能够帮你解决2020新年第一坑——number变string所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复