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_percentprint(type(..)) 显示的 nil

但我只是在上面 5 行字面上分配了它。

所以问题是:

  1. 为什么 last_tick_percent 为零,我该如何解决?
  2. 为什么第一次打印没有执行?

您正在将脚本中未声明的 re_percent 分配给 stored_energy 内的 last_tick_percent。我假设你打算分配 rf_percent.