查看小游戏制作工具官方文档可知:列表包含的元素应该支持数字和文本,然而打开调试模式可知,后台会默认把数字转化为字符串,而列表也会把用户输入的数字转化成字符串,这样正好实现了列表包含数字的功能,这种实现是不合理的。
问题总结:用户创建变量时如果输入的是数字,后台保存的也是数字,这会带来潜在bug。
问题描述:假设用户编辑的列表 list 只有 1,2,3 三个数字,有一个变量a=1,运行list包含a,会得到false,这与用户预期不符,原因是后台将 [1,2,3] 转化成了["1","2","3"]。
腾讯文化的首要就是尊重用户,为什么用户输入的是数字,却转化成了字符串呢?
故而建议如下:
一、检测用户编辑列表和表格时输入的内容,如果是数字,就保存为数字,反之,保存为字符串。
二、检查所有涉及的api,例如:将变量a设置成1,不要将1转化成字符串"1";列表list包含1,不要将1转化成字符串"1"。
总结起来一句话:不要一股脑把用户的输入转化成字符串,而是要分情况处理。
PS:这是我开发小游戏过程中遇到的最无厘头的坑,坑还有很多,但是该用还是要用,该感谢还是要感谢。