3

我想使用类似的东西

hash.pick('prop1', 'prop2')

与使用下划线选择方法相同(获取对象/哈希的属性并基于它们创建新的哈希)

所以它看起来像这样

{ prop1: 'asdf', prop2: 'qwer', prop3: 'uiop' }.pick( 'prop2', 'prop3' )
# equals { prop2: 'qwer', prop3: 'uiop' }
4

2 回答 2

7

对于 Ruby 2.5 及更高版本,使用内置的 hash.slice 方法。

{ prop1: 'asdf', prop2: 'qwer', prop3: 'uiop' }.slice(:prop2, :prop3)

这种方法最初是在 Rails (ActiveSupport) 中引入的,因此它可以在 Rails 环境中的早期 Ruby 版本中使用。

于 2012-09-20T14:37:59.233 回答
7

使用哈希切片方法,如下所示:

hash.slice(:prop1, :prop2)
于 2012-09-20T14:34:20.507 回答