keycreator:21: 尝试对本地变量 'iLevel'(空值)执行算术运算

收到错误信息“keycreator:21: 尝试对本地变量 'iLevel'(空值)执行算术运算”,但无法理解 / 弄清楚原因

local sPrefix = "班级"
local sSufix = " 科技卡"
local iLevelLength = 6
local sDiskSide = "右"

local tVarargs = {...}
local iLevel = tVarargs [1]
local sLevel = "4"

if(iLevel == "1"then sLevel = "E"end
if(iLevel == "2"then sLevel = "D"end
if(iLevel == "3"then sLevel = "C"end
if(iLevel == "4"then sLevel = "B"end
if(iLevel == "5"then sLevel = "A"end

local hMKey = fs.open"masterkey.lua""r"local hKey = fs.open"disk / key""w"local sMKey = hMKey.readAll()
local sWriteKey = string.sub(sMKey,1,iLevel * iLevelLength)

disk.setLabel(sDiskSide,sPrefix .. sLevel .. sSufix)
hKey.write(sWriteKey)

hMKey.close()
hKey.close()
点赞
用户2858170
用户2858170

Lua 5.3 参考手册中的:

3.4 - 表达式

变参表达式用三个点 ('...') 表示,只能在变参函数内部直接使用,详见§3.4.11。

7 - Lua 独立运行:

在运行任何代码之前,lua 会将所有命令行参数收集到一个名为 arg 的全局表中。脚本名称保存在索引 0 中,脚本名后的第一个参数保存在索引 1 中,以此类推。

因此在您的情况下,{...} 结果为空表。请使用 arg

2020-04-09 07:25:11