Mir*_*azy 2 lua type-conversion minecraft
这个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)
Run Code Online (Sandbox Code Playgroud)
Lua为其数组使用基于1的索引.args[0]是nil,因此有类型"nil".
顺便说一句,这种情况完全没必要.tonumber将检查其参数是否为数字,并在需要时简单地返回.nil如果参数无法转换为数字,它将返回.所以只需使用:
distance = tonumber(args[1])
Run Code Online (Sandbox Code Playgroud)
你甚至不需要检查长度args; 如果没有提供任何参数,它将会nil,tonumber并将返回nil.因此,只是检查,看看是否distance是nil.