Ruby 我可以使用'&';选择比赛的速记?

Ruby 我可以使用'&';选择比赛的速记?,ruby,block,proc,Ruby,Block,Proc,我有以下代码: result= ["MA-1", "NY-2", "CT-2", "NJ-1", "NJ-2", "NJ-3"].select do |element| element.match '2' end 有没有一种方法可以在不使用单独程序的情况下使用&快捷方式 我试过: ["MA-1", "NY-2", "CT-2", "NJ-1", "NJ-2", "NJ-3"].select(&:match('2')) 这会引发语法错误 [我可以这样做]而不使用单独的进程吗 不可以

我有以下代码:

result=
["MA-1", "NY-2", "CT-2", "NJ-1", "NJ-2", "NJ-3"].select do |element|
  element.match '2'
end
有没有一种方法可以在不使用单独程序的情况下使用
&
快捷方式

我试过:

["MA-1", "NY-2", "CT-2", "NJ-1", "NJ-2", "NJ-3"].select(&:match('2'))
这会引发语法错误

[我可以这样做]而不使用单独的进程吗

不可以。主要是因为
&
或符号都不是可以接受参数的方法或任何东西。你必须使用完整的表格

[我可以这样做]而不使用单独的进程吗


不可以。主要是因为
&
或符号都不是可以接受参数的方法或任何东西。您必须使用完整的表单。

您似乎可以使用
grep

["MA-1", "NY-2", "CT-2", "NJ-1", "NJ-2", "NJ-3"].grep(/2/)
#=> ["NY-2", "CT-2", "NJ-2"]
或使用自定义过程:

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):


您似乎可以使用
grep

["MA-1", "NY-2", "CT-2", "NJ-1", "NJ-2", "NJ-3"].grep(/2/)
#=> ["NY-2", "CT-2", "NJ-2"]
或使用自定义过程:

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):


是的,
grep
是一个很棒的工具。是的,
grep
是一个很棒的工具。我用得不够。