我无法理解以下内容。我有以下代码:
awful.key({ "Mod1" }, "Tab",
function (c)
local grabber = awful.keygrabber.run(
function(mod, key, event)
if grabber == nil then
naughty.notify({ text="nope"})
end
awful.keygrabber.stop(grabber)
return
end)
end)
super当我按下+Tab然后通过调用 stop 方法释放键盘焦点时,这应该会抓住键盘。然而,grabber
变量似乎是nil
。起初我认为这是一个范围问题,所以我删除了local
, 这有效。但是我感觉好像这不是解决这个问题的方法。
在弄乱它之后,我发现这是可行的:
awful.key({ "Mod1" }, "Tab",
function (c)
local grabber
grabber = awful.keygrabber.run(
function(mod, key, event)
if grabber == nil then
naughty.notify({ text="nope"})
end
awful.keygrabber.stop(grabber)
return
end)
end)
唯一的区别是该变量grabber
是在一行中定义的,并且在一行之后被分配。为什么我不能在同一行执行此操作?