娃娃鸭学Ruby-33、迭代器

虽然可用while,until和for循环
但还是更倾向于用迭代器

3.times{puts "thank you!"
data.each{|x| puts x}
[1,2,3].map{|x| x*x}

factorial=1
2.upto(n) {|x| factorial*=x}
times,each,map,upto都是迭代器
yield语句就是这些迭代器背后复杂的控制结构。yield语句从迭代器中临时地将程序控制权返回给那个调用迭代器的方法,具体来说,程序的控制流会从迭代器转移到那个与迭代器调用相关联的代码块中,当程序执行完代码块之后,迭代器方法重新获得控制权并且从位于yield语句之后的第一个语句开始继续执行。


数值迭代器
Kernel类的loop方法 像一个无限循环,不断执行相关代码块,直到遇到 return ,break
Integer类 三个迭代器
upto
4.upto(6) {|x| print x} # prints "456"
downto 类似upto
times
3.times{|x| print x} # prints "012"
n.times和0.upto(n-1)是等价的
Numeric类
step
0.step(Math::PI,0.1} {|x| puts Math.sin(x)}

2011-4-19 14:21 danny
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值