相关疑难解决方法(0)

为什么Lua禁止转到本地var定义?

我从手册http://lua-users.org/wiki/GotoStatement中读到了这一点

我在循环中有一个类似的代码块:

while true do
  if someCond == nil then
      goto f  -- invalid (forward jump into scope of local definition)
  end

  local x = 1
   -- do something with x
  ::f::
end
Run Code Online (Sandbox Code Playgroud)

这将失败,"......跳进本地x的范围"

但为什么?如果在使用本地x之后执行跳转 - 它不再被触及 - 因此这里不再需要"本地x"

当我用x = 1(全局制作)切换局部x时,它工作正常.

这是一种缺失的疏忽或优化吗?例如,他们可能总是假设跳转到标签后可以使用局部变量

lua

6
推荐指数
1
解决办法
1310
查看次数

标签 统计

lua ×1