Lua多赋值场景下如何仅声明单个新局部变量?
解决Lua局部变量重复定义的问题
你遇到的问题是因为在同一作用域内,local关键字会声明新的局部变量,第二次用local status, bar时重复声明了status,导致语法错误。要复用已有的status同时只声明bar为新局部变量,可以这样处理:
方法1:拆分变量声明与赋值
先单独声明bar为局部变量,再复用已有的status完成赋值:
local status, foo = pcall(require, "foo") -- 这里编写你的中间逻辑 local bar status, bar = pcall(require, "bar")
方法2:提前声明外层局部变量(可选)
如果后续需要多次复用status,可以把status的声明提升到当前作用域的最外层,避免重复声明:
local status -- 提前声明局部变量status local foo status, foo = pcall(require, "foo") -- 中间逻辑 local bar status, bar = pcall(require, "bar")
这两种方式都能避免重复定义的报错,同时保证bar是新的局部变量,status被正常复用。
内容的提问来源于stack exchange,提问作者Zach W
相关产品推荐
相关产品推荐

