Lua学习笔记(三)——协同程序

一、 迭代器

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函数

 

八、 协同程序的执行权

 

 

九、 协同程序之间的参数传递

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值