Ruby数学运算符可以存储在哈希中并稍后动态应用吗?
发布时间:2020-12-17 03:53:27 所属栏目:百科 来源:网络整理
导读:有没有办法设置哈希值为,,%等等? 我想创建一个接受一个int数组的方法,以及一个带参数的哈希. 在下面的方法中,array是要过滤的数组,hash是参数.这个想法是删除任何小于min或大于max的数字. def range_filter(array,hash) checker={min= ,max = } # this is
有没有办法设置哈希值为<,>,%等等?
我想创建一个接受一个int数组的方法,以及一个带参数的哈希. 在下面的方法中,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 解决方法
在ruby中,即使数学也是一种方法调用.并且数学符号可以存储为ruby符号.这些行是相同的:
1 + 2 # 3 1.+(2) # 3 1.send(:+,2) # 3 如此武装,存储它很简单: op = { :method => :> } puts 1.send(op[:method],2) # false puts 3.send(op[:method],2) # true (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |