lua变量类型nil尽管我刚刚分配了它

我有一个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

第一个print似乎没有执行。在函数内部,第一个print返回Number,而第二个print返回nil

现在我有一个错误attempt to perform arithmetic on upvalue "last_tick_percent" ( a nil value),显然是因为last_tick_percentnil,这是print(type(..))显示的。

但我刚刚在5行以上分配了它。

因此,问题是:

  1. 为什么last_tick_percent是空的,我该怎么修复它?
  2. 为什么第一个print没有执行?
点赞
用户1208078
用户1208078

你正在将未在脚本中声明的 re_percent 赋值给 stored_energy 中的 last_tick_percent。我假设你的意思是要赋值给 rf_percent

2017-05-26 16:16:16