2

这个 lua 代码有什么问题,无论我输入什么,我的参数都不会转换为数字或识别为数字?

我也尝试了“距离 = 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)
4

1 回答 1

5

Lua 对其数组使用基于 1 的索引。args[0]nil,因此具有类型"nil"

顺便说一句,这个条件是完全没有必要的。tonumber将检查它的参数是否是一个数字,并在需要时简单地返回它。nil如果参数不能转换为数字,它将返回。所以只需使用:

distance = tonumber(args[1])

您甚至不需要检查 ; 的长度args。如果没有提供参数,它将是nil,并且tonumber将返回nil。因此,只需检查是否distancenil.

于 2013-01-25T22:50:43.620 回答