lua 变量类型 nil 即使我刚刚分配它
lua variable type nil even though i just assigned it
我这里有一部分 lua 脚本:
local cmp = require("component")
local r = cmp.br_reactor
local e = require("event")
local unicode = require ("unicode")
local exit = false
local buffersize = 10000000
local last_tick_percent = 1
print(type(last_tick_percent))
function stored_energy()
local rf_stored = r.getEnergyStored()
local rf_percent = (rf_stored/buffersize)*100
print(type(rf_precent))
print(type(last_tick_percent))
local delta_percent = rf_percent - last_tick_percent
last_tick_percent = re_percent
return rf_percent.."% ["..rf_stored.."] | "..unicode.char(916)..": "..delta_percent.."%"
end
由于某种原因甚至没有执行第一次打印。在函数内部,第一个打印 returns Number
而第二个打印 returns nil
.
现在我收到错误 attempt to perform arithmetic on upvalue "last_tick_percent" ( a nil value)
,显然是因为 last_tick_percent
是 print(type(..))
显示的 nil
。
但我只是在上面 5 行字面上分配了它。
所以问题是:
- 为什么
last_tick_percent
为零,我该如何解决?
- 为什么第一次打印没有执行?
您正在将脚本中未声明的 re_percent
分配给 stored_energy
内的 last_tick_percent
。我假设你打算分配 rf_percent
.
我这里有一部分 lua 脚本:
local cmp = require("component")
local r = cmp.br_reactor
local e = require("event")
local unicode = require ("unicode")
local exit = false
local buffersize = 10000000
local last_tick_percent = 1
print(type(last_tick_percent))
function stored_energy()
local rf_stored = r.getEnergyStored()
local rf_percent = (rf_stored/buffersize)*100
print(type(rf_precent))
print(type(last_tick_percent))
local delta_percent = rf_percent - last_tick_percent
last_tick_percent = re_percent
return rf_percent.."% ["..rf_stored.."] | "..unicode.char(916)..": "..delta_percent.."%"
end
由于某种原因甚至没有执行第一次打印。在函数内部,第一个打印 returns Number
而第二个打印 returns nil
.
现在我收到错误 attempt to perform arithmetic on upvalue "last_tick_percent" ( a nil value)
,显然是因为 last_tick_percent
是 print(type(..))
显示的 nil
。
但我只是在上面 5 行字面上分配了它。
所以问题是:
- 为什么
last_tick_percent
为零,我该如何解决? - 为什么第一次打印没有执行?
您正在将脚本中未声明的 re_percent
分配给 stored_energy
内的 last_tick_percent
。我假设你打算分配 rf_percent
.