Ruby 1.9的Proc#===作为call的一个别名,所以函数对象可以作为case语句中的条件
def multiple_of(factor)
lambda{|num| num % factor == 0}
end
#or
#def multiple_of(factor)
# proc{|num| num % factor == 0}
#end
#
while number = gets.to_i
case number
when multiple_of(2)
puts "multiple of 2"
when multiple_of(3)
puts "multiple of 3"
when multiple_of(5)
puts "multiple of 5"
else
puts "#{number} is not multiple of 2,3,5"
end
end
本文介绍Ruby中Proc#===的使用方法,并通过一个案例展示了如何利用该方法实现数字判断的功能。通过定义一个名为multiple_of的函数来判断一个数是否为特定因子的倍数,并在case语句中使用Proc#===进行条件匹配。

被折叠的 条评论
为什么被折叠?



