私は、何時間も費やしたことがありませんでしたが、Luaはまだ比較的新しいものですから、なぜ動作しないのか分かりません。ルア:値がない場合は、テーブルに値を作成します - 何が欠けていますか?
ここで私がやろうとしていることがあります。私が最初にアイテムにスパイクしている場合、それはspikeRatesテーブルに表示されないので、追加する必要があります。前にアイテムをスパイクしたが、私がスパイクしているアイテムで決して行ったことがなければ、それをspikeRates [itemSpiked]テーブルに反映させる必要があります。私が書いたコードは次のとおりですが、テーブルに値を設定できません。
spikeRates={}
itemSpiked = "leather"
mySpike = "iron"
if not spikeRates[itemSpiked] then
spikeRates[itemSpiked]={}
spikeRates[itemSpiked][mySpike]={}
print("This is your first time spiking "..itemSpiked.."!")
elseif not spikeRates[itemSpiked][mySpike] then
spikeRates[itemSpiked][mySpike]={Failure=0,Success=0}
print("This is your first time spiking "..itemSpiked.." with "..mySpike.."!")
end
for i,v in pairs(spikeRates) do
print(i .. ": " .. v)
end
これを実行すると、データベースの印刷にnil値(v)を連結しようとするエラーが発生します。すべてが正しいように見える、またはそう思った。完全に明白な何かが欠けていますか?ありがとう!
あなたが自信を持っていて、デバッグプリントを入れたいと思うなら、あなたはこれをすることができます: 'spikeRates [itemSpiked] = spikeRates [itemSpiked] or print("これはあなたの初めてのスパイクです "..itemSpiked .." ! ")または{}'あなたが混乱している場合は、これを無視してください。 – Deco
彼は素晴らしいデコですが、そのようにすることは考えていませんでした! – jpjacobs
印刷メッセージが確実に必要です。それはユーザーに知らせるようにユーザーに出力され、elseif部分の理由は、過去にその項目をスパイクしてしまったかどうかを出力するようになっていて、もしあれば、その特定のスパイクでそれをスパイクしました。私はwxluaeditで両方を試しましたが、nil(v)の値を連結しようとするとエラーが返されます。問題が何であるかわからない... – Josh