当if语句分支不包含任何语句时,Luacheck linter会发出警告.例如,如果我有一个test.lua使用以下代码调用的文件
local function f(x)
if x == "hello" then
-- nothing to do
elseif x == "world" then
print(17)
else
error("bad value for x")
end
end
f("world")
Run Code Online (Sandbox Code Playgroud)
然后运行luacheck test.lua将产生以下诊断
Checking test.lua 1 warning
test.lua:2:21: empty if branch
Total: 1 warning / 0 errors in 1 file
Run Code Online (Sandbox Code Playgroud)
有办法解决这个警告吗?据我所知,没有配置选项来禁用它,并尝试使用分号的一些空语句也不会使警告静音(实际上它只会添加关于空语句的附加警告):
if x == "hello" then
;
elseif ...
Run Code Online (Sandbox Code Playgroud)
目前,我能想到的唯一解决方法是创建一个额外的if语句层,我认为它不如原始版本清晰.
if x ~= "hello" then
if x == "world" then
print(17)
else
error("impossible")
end
end
Run Code Online (Sandbox Code Playgroud)