Lua脚本语言开发Lua首页投稿(暂停使用,暂停投稿)

Lua closure

2016-06-24  本文已影响525人  AlbertS

前言#

“closure”,一个之前我从没见过的词出现在了lua的编程世界中,lua将其解释为闭包,它具有着这种特性:将一个函数写在另一个函数之内,那么这个位于内部的函数便可以访问外部函数中的局部变量,这项特性称之为词法域。

示例#

接下来我们可以利用这个特性来实现一个自己的计数器:

-- 实现部分
function create_a_counter()
    local count=0
    return function()
        count = count + 1
        return count
    end
end

-- 调用部分
local mycounter = create_a_counter();

print("counter = "..mycounter())
print("counter = "..mycounter())
print("counter = "..mycounter())
print("counter = "..mycounter())
print("counter = "..mycounter())
print("counter = "..mycounter())
closure.png

总结#

上一篇下一篇

猜你喜欢

热点阅读