我有这样的代码:
result=
["MA-1", "NY-2", "CT-2", "NJ-1", "NJ-2", "NJ-3"].select do |element|
element.match '2'
end有没有一种不用单独的proc就可以使用&快捷方式的方法?
我试过:
["MA-1", "NY-2", "CT-2", "NJ-1", "NJ-2", "NJ-3"].select(&:match('2'))这会引发语法错误。
发布于 2018-08-21 20:27:17
看起来你可以使用grep
["MA-1", "NY-2", "CT-2", "NJ-1", "NJ-2", "NJ-3"].grep(/2/)
#=> ["NY-2", "CT-2", "NJ-2"]或者使用定制的proc:
my_proc = ->(e) { e.match('2') }
["MA-1", "NY-2", "CT-2", "NJ-1", "NJ-2", "NJ-3"].select(&my_proc)
#=> ["NY-2", "CT-2", "NJ-2"]或(@engineersmnky的学分):
select(&/2/.method(:match))发布于 2018-08-21 20:09:10
我可以在不使用单独的proc的情况下这样做吗?
不是的。主要是因为&和符号都不是可以接受参数的方法或任何东西。你必须使用完整的表格。
https://stackoverflow.com/questions/51955924
复制相似问题