我正在使用Computercraft,一个Minecraft mod,我需要帮助。我试图找到一种类型的所有外围设备,从它们获取能量,并将它们加在一起。但是,我得到了一个"尝试在nill"或者是一些错误。这是我的代码:
local periList = peripheral.getNames()
energy = 0
totalenergy = 0
for i = 1, #periList do
if peripheral.getType(periList[i]) == "cofh_thermalexpansion_energycell" then
local cell = peripheral.wrap(periList[i])
print(periList[i])
if cell.getEnergyStored("potato") ~= "nil" then
energy = cell.getEnergyStored("potato")
print(cell.getEnergyStored("potato"))
else
energy = 0
print(0)
end
totalenergy = totalenergy + energy
end
end
print(totalenergy)
抱歉,codebox没有用
无论如何,有谁知道如何解决这个问题?
答案 0 :(得分:4)
nil
和"nil"
是两回事。
前者是nil
类型“singleton”,后者是由三个字符组成的字符串。它们并不等同。
尝试删除if
行中的引号。
此外,您可以将(潜在的)nil
分配给energy
然后直接energy
并将其设置为0(如果它是nil
(或者甚至只是使用
energy = cell.getEnergyStored("potato") or 0
直接由于nil
是“false-y”值,因此nil or 0
评估为0
)。