나는 알아 내려고 노력하는 데 시간을 쏟았다는 문제가 있지만 루아는 여전히 비교적 새로운 것이기 때문에 그것이 작동하지 않는 이유를 알 수는 없습니다.루아 : 값이 없다면 테이블에 값을 만드십시오 - 무엇이 누락 되었습니까?
다음은 내가하려는 일입니다. 처음 항목을 첨가하는 경우 spikeRates 테이블에 항목이 표시되지 않으므로 추가해야합니다. 전에 아이템을 spiked했지만 spiking하고있는 아이템을 사용하지 않았다면 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] 또는 print ("처음 spiking"입니다 .itemSpiked .. " ! ") 또는 {}'. 혼란 스러울 때 이것을 무시하십시오. – Deco
그는 멋진 데코입니다. 그런 식으로 생각하지 않았습니다! – jpjacobs
인쇄 메시지가 꼭 필요합니다. 사용자에게 알려주는 출력이며, elseif 부분의 이유는 과거에 해당 항목을 모두 스파이크했는지 여부를 출력하기 때문이었습니다. 그 특별한 스파이크로 스파이크 시켰어. 내가 wxluaedit에서 시도한, 그리고 그것은 여전히 nil (V) 값을 연결하려고 시도에 대한 오류를 반환합니다. 문제가 무엇인지 확실하지 않습니다. – Josh