Lua参数问题

这段 Lua 代码有什么问题,无论我输入什么,我的参数从未被转换成数字或被识别为数字吗?

我尝试了 "distance = tonumber(arg[0]) or 0"。

–Args

-local args = {...}

–Variables

-local distance = 0if #args > 0 and type(args[0])=="string" then args[0] = tonumber(args[0]) endif #args > 0 and type(args[0])=="number" then distance = args[0] endprint("Distance: "..distance)
点赞
用户734069
用户734069

Lua 使用基于1的索引来访问其数组。args[0] 的类型为 "nil",并且其值为 nil

顺便说一下,这个条件是完全不必要的。tonumber 会检查其参数是否为数字,如果需要它就简单地返回它。如果无法将参数转换为数字,则返回 nil。因此,只需使用:

distance = tonumber(args[1])

你甚至不需要检查 args 的长度;如果没有提供参数,它将为 nil,而 tonumber 将返回 nil。因此,只需检查 distance 是否为 nil

2013-01-25 22:50:43