lua变量类型为零,即使我刚刚分配它

时间:2017-05-26 15:43:52

标签: variables lua scope local

我在这里有一个lua脚本的一部分:

/dev/null

由于某种原因,第一次打印甚至没有执行。在函数内部,第一个打印返回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 ,而第二个打印返回Number

现在我收到错误nil,显然是attempt to perform arithmetic on upvalue "last_tick_percent" ( a nil value) last_tick_percent nil显示的错误{。}}。

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

所以问题是:

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

1 个答案:

答案 0 :(得分:1)

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