Ruby 编写自己的迭代器
上一篇 /
下一篇 2011-01-23 19:44:32
/ 个人分类:Ruby
def factorial (count, &block)
value=1
1.upto(count) do |i|
value =value*i
block.call(i,value)
end
end
factorial(5) do |i,sum|
puts "factorial(#{i})=#{sum}"
end
输出:
factorial(1)=1
factorial(2)=2
factorial(3)=6
factorial(4)=24
factorial(5)=120
所以其实这面,i,valu传给i,sum
# store the input block
class MathFact
def initialize(&block)
@block=block
end
def factorial(max)
value=1
1.upto(max) do |i|
value=value*i
@block.call(value)
end
end
end
the_value =MathFact.new do |count|
puts "Current value is #{count}"
end
the_value.factorial(5)
输出结果是什么?
收藏
举报
TAG: