lua当中函数是一个值,他可以存在变量中。
local function test( t )
local star_i = 0
local v = 0
local len = #t
return function ( )
v = v + 1
star_i = star_i + 2
return v,star_i > len
end
end
这样就构成了一个简单的闭包函数。
闭包在迭代器中的运用:
假如一个有n个数据的有序数组,想输出其中索引是2倍数的数据。
local tab = {1,2,3,4,5,6,7}
local func = test(tab)
local val = 0
while true do
local v,bool = func()
val = v
if bool then
break
end
end