我在http://www.ruby-doc.org/core-2.1.2/Array.html中看起来非常努力,但我找不到这种行为的快速功能:
arr = [1,2,3,4,5,6]
arr.without(3,6) #=> [1,2,4,5]
Run Code Online (Sandbox Code Playgroud)
我知道我可以编写自己的函数/ monkey-patch ruby /添加类方法/将它写成几行.
有没有办法以红宝石的方式做到这一点?
Nic*_*nto 10
这是在 Rails 5 中添加的:)
https://github.com/rails/rails/issues/19082
module Enumerable
def without(*elements)
reject { |element| element.in?(elements) }
end
end
Run Code Online (Sandbox Code Playgroud)
这只是美学,但它对大脑有意义
你可以使用减法:
arr - [3,6]
Run Code Online (Sandbox Code Playgroud)
编辑
如果你真的想要你可以别名这个方法
class Array
alias except -
end
Run Code Online (Sandbox Code Playgroud)
然后你可以使用:
arr.except [3,6]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2811 次 |
| 最近记录: |