LUA变量类型无
问题描述:
我这里有一个Lua脚本的一部分: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
第一印刷甚至不是出于某种原因执行。在该功能中,第一次打印返回Number
,而第二次打印返回nil
。
现在我得到错误attempt to perform arithmetic on upvalue "last_tick_percent" (a nil value)
,显然是因为last_tick_percent
是nil
,print(type(..))
显示。
但我刚刚分配它字面上5行以上。
所以问题是:
- 为什么
last_tick_percent
零,我怎样才能解决呢? - 为什么第一次打印没有执行?
答
要指定这是不是在你的脚本声明last_tick_percent
内stored_energy
re_percent
。我假设你打算分配rf_percent
。
非常感谢。它总是最明显的东西:) – user5236815
在print()调用中还有一个对'rf_precent'的引用。使用语法着色编辑器可以帮助避免这类错误,如果它知道范围并且可以对变量着色不同。 [ZeroBrane Studio](https://studio.zerobrane.com/)做得很好,还有其他的。 [lua-users wiki也有关于此主题的网页](http://lua-users.org/wiki/DetectingUndefinedVariables)。 – RBerteig