首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以用“&”的缩写来选择火柴吗?

我可以用“&”的缩写来选择火柴吗?
EN

Stack Overflow用户
提问于 2018-08-21 20:03:31
回答 2查看 187关注 0票数 0

我有这样的代码:

代码语言:javascript
复制
result=
["MA-1", "NY-2", "CT-2", "NJ-1", "NJ-2", "NJ-3"].select do |element|
  element.match '2'
end

有没有一种不用单独的proc就可以使用&快捷方式的方法?

我试过:

代码语言:javascript
复制
["MA-1", "NY-2", "CT-2", "NJ-1", "NJ-2", "NJ-3"].select(&:match('2'))

这会引发语法错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-21 20:27:17

看起来你可以使用grep

代码语言:javascript
复制
["MA-1", "NY-2", "CT-2", "NJ-1", "NJ-2", "NJ-3"].grep(/2/)
#=> ["NY-2", "CT-2", "NJ-2"]

或者使用定制的proc:

代码语言:javascript
复制
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的学分):

代码语言:javascript
复制
select(&/2/.method(:match))
票数 4
EN

Stack Overflow用户

发布于 2018-08-21 20:09:10

我可以在不使用单独的proc的情况下这样做吗?

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51955924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档