一、 迭代器
1、
function values(t)
function values(t)
local i = 0
return function ()
i = i + 1 ;
return t[i];
end
end
t = {20,30,40,45,15,23,456,15,5}
iter = values(t);
while true do
element = iter();
if element == nil then
break
end
print("#######"..element)
end
local i = 0
return function ()
i = i + 1 ;
return t[i];
end
end
t = {20,30,40,45,15,23,456,15,5}
iter = values(t);
while true do
element = iter();
if element == nil then
break
end
print("#######"..element)
end
values函数就是我们自建的迭代器
2、
function allwords()
local line = io.read();
local pos = 1
return function ()
str = ""
while line do
local s,e = string.find(line,"%w+",pos)
if s then
pos = e+1;
str = str..".."..string.sub(line,s,e);
line = string.sub(line,pos,#line - e+1)
else
return str
end
end
return nil;
end
end
for word in allwords do
print(word());
end
二、 泛型 for in 迭代循环
三、 知识点总结
a) 字符串的长度用操作符“#”+字符串得出 例:#line
b) 利用pairs()函数可以遍历,数组的索引和值
四、 协同程序和线程
五、 协同程序的创建
六、 协同程序的状态
七、 协同程序的yield函数
八、 协同程序的执行权
九、 协同程序之间的参数传递