Lua 5.x中upvalue的%是否已删除
我正在从一本有点旧的书上学习Lua。 我尝试过在网上搜索,但由于在搜索中使用了Lua 5.x中upvalue的%是否已删除,lua,closures,Lua,Closures,我正在从一本有点旧的书上学习Lua。 我尝试过在网上搜索,但由于在搜索中使用了#符号,我得到了令人困惑的结果 它说为了使用upvalue,您需要使用%符号 但是当我在代码中编写它时,我会得到一个错误 Account.new = function (starting_balance) local self = {} local balance = starting_balance self.withdraw = function (v) %balance = %balance
#
符号,我得到了令人困惑的结果
它说为了使用upvalue,您需要使用%
符号
但是当我在代码中编写它时,我会得到一个错误
Account.new = function (starting_balance)
local self = {}
local balance = starting_balance
self.withdraw = function (v)
%balance = %balance - v;
end
return self
end
错误为:靠近“%”的意外符号
在Lua5.x中有没有一种新的方法来处理向上的值?自从Lua5.0以来,不再有“向上的值符号”这样的东西了。upvalue是函数声明环境的局部变量,因此可以作为任何其他局部变量进行访问 在您的情况下:只需使用
余额
而不是%balance
在Lua 5.1中,%
用作模运算符
一本不错但稍有过时的书是在线版的,当然还有。自从Lua5.0以来,再也没有所谓的“上升值符号”了。upvalue是函数声明环境的局部变量,因此可以作为任何其他局部变量进行访问 在您的情况下:只需使用
余额
而不是%balance
在Lua 5.1中,%
用作模运算符
一本好的但稍微过时的书是在线版的,当然,还有。我会用结尾我会用结尾我会用结尾一定是一本很老的书!
lua5.0中删除了%
as upvalue符号。(2003年发布)
自5.0以来,Lua具有词汇范围;
也就是说,upvalues是自动的:
do
local balance = 0
function deposit ( v )
balance = balance + v
return balance
end
end
print ( deposit ( 5 ) )
输出:
5
一定是一本很旧的书!
lua5.0中删除了%
as upvalue符号。(2003年发布)
自5.0以来,Lua具有词汇范围;
也就是说,upvalues是自动的:
do
local balance = 0
function deposit ( v )
balance = balance + v
return balance
end
end
print ( deposit ( 5 ) )
输出:
5