0
我有一個問題,我花了幾個小時試圖弄清楚,但由於Lua對我來說還是比較新的,我無法弄清楚它爲什麼不起作用。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]或者打印(「這是你第一次扣球」..itemSpiked ..「 !「)或{}'。如果你感到困惑,請忽略它。 – Deco 2012-01-06 10:49:59
他,這是一個很好的德科,從來沒有想過這樣做! – jpjacobs 2012-01-06 11:43:16
打印消息是絕對需要的。這是一個輸出給用戶,所以他們知道,而elseif部分的原因是,它可以輸出他們是否曾經在過去刺過該項目,如果他們有,繼續看看他們是否會用特定的秒殺刺激它。我在wxluaedit中嘗試了兩種方法,並且它試圖連接一個nil(v)值仍然返回一個錯誤。不知道是什麼問題... – Josh 2012-01-06 13:07:45