2

この lua コードの何が問題になっていますか? 入力しても引数が数値に変換されないか、数値として認識されませんか?

「distance = tonumber(arg[0]) or 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;の長さを確認する必要さえありません。引数が指定されていない場合は になりniltonumberが返されnilます。したがって、 であるかどうかを確認するだけdistanceですnil

于 2013-01-25T22:50:43.620 に答える