我有一个可以使用 0、1 或 2 个参数调用的函数。我想测试一下输入了多少参数以及它们是否是实际数字。这是代码:
first = tonumber(frame.args[1])
second = tonumber(frame.args[2])
if first then
if first <= second then
return math.random(first, second)
end
return math.random(first)
end
return math.random()
我的想法是,如果它们不是数字(或为空),那么当我调用 tonumber() 时,变量将为假。如果它们都是 NaN,则 <= 可能为真,但它们必须经历作为数字存在的“第一个”,因此它们都必须是数字,并且比较不会使 if 语句短路。如果任何一个 if 失败,它就会跳到下一个有效的返回。看起来不错?有人看到任何问题吗?