「...の隠された機能」ミームの続きとして、Ruby プログラミング言語のあまり知られていないが便利な機能を共有しましょう。
この議論は、Ruby on Rails に関する内容を含めず、コア Ruby に限定するようにしてください。
参照:
(お願い、ただ1つ回答ごとに隠された機能。
ありがとう
ベストアンサー1
Ruby 1.9 以降、Proc#=== は Proc#call のエイリアスです。つまり、Proc オブジェクトは次のように case 文で使用できます。
def multiple_of(factor)
Proc.new{|product| product.modulo(factor).zero?}
end
case number
when multiple_of(3)
puts "Multiple of 3"
when multiple_of(7)
puts "Multiple of 7"
end