一、什么是 ruby 中的代码块?
二、块怎样转换成对象?
三、使用参数
#一、关于&block的参数
def teach_math(a,b,&block)
puts "let's begin teach math"
block.call(a,b) #<=
end
#二、关于yield的参数 (与方法一完全等效)
def teach_math2(a,b)
puts "let's begin teach math"
yield(a,b) #<=
end
#--------------------------------------
#1、最简洁,最常用的
teach_math2(10,2){|x,y| x+y} #加法
#2、Proc实例
pp = Proc.new {|x,y| x-y} #减法
teach_math2(10,2,&pp)
#3、简写Proc实例
p = proc{|x,y| x-y}
teach_math2(10,2,&p)
#4、lambda
ll= lambda{|x,y| x*y} # 乘法
teach_math2(10,2,&ll)
#5、简写的lambda
l = ->(x,y){x*y}
teach_math2(10,2,&l)
总结