<
,>
,%
,+
などの値を持つハッシュを設定する方法はありますか? intの配列とパラメータを持つハッシュを受け入れるメソッドを作成したいと思います。Ruby数学演算子をハッシュに格納し、後で動的に適用できるか?
以下の方法では、array
がフィルタリングされる配列であり、hash
がパラメータです。考えられるのは、min
未満またはmax
以上の数字が削除されているということです。
def range_filter(array, hash)
checker={min=> <, ,max => >} # this is NOT working code, this the line I am curious about
checker.each_key {|key| array.delete_if {|x| x checker[key] args[key] }
array.each{|num| puts num}
end
所望の結果は、
array=[1, 25, 15, 7, 50]
filter={min=> 10, max=> 30}
range_filter(array, filter)
# => 25
# => 15
可能な重複(それはあまりにも動作しますが、あなたは
lambda{ |x| x % 3 == 1 }
を望んでいる場合?)との比較Ruby?](http://stackoverflow.com/questions/13060239/can-i-dynamically-call-a-math-operator-in-ruby) –