这个lua代码出了什么问题,无论我输入什么内容,我的论证都不会转换为数字或被识别为数字?
我尝试了“distance = tonumber(arg [0])或0”。
--Args
local args = {...}
--Variables
local distance = 0
if #args > 0 and type(args[0])=="string" then args[0] = tonumber(args[0]) end
if #args > 0 and type(args[0])=="number" then distance = args[0] end
print("Distance: "..distance)
答案 0 :(得分:5)
Lua为其数组使用基于1的索引。 args[0]
为nil
,因此类型为"nil"
。
顺便说一下,这个条件完全没必要。 tonumber
将检查其参数是否为数字,并在需要时返回。如果参数无法转换为数字,它将返回nil
。所以只需使用:
distance = tonumber(args[1])
您甚至不需要检查args
的长度;如果未提供参数,则为nil
,tonumber
将返回nil
。因此,只需检查distance
是否为nil
。