当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Hash.transform_keys用法及代码示例


用法

transform_keys {|key| ... } → new_hash
transform_keys(hash2) → new_hash
transform_keys(hash2) {|other_key| ...} → new_hash
transform_keys → new_enumerator

返回一个新的 Hash 对象;每个条目都有:

  • 块提供的 key 。

  • self 中的值。

可以提供一个可选的散列参数来将键映射到新键。任何未给出的键都将使用提供的块进行映射,或者如果没有给出块则保持不变。

变换键:

h = {foo: 0, bar: 1, baz: 2}
h1 = h.transform_keys {|key| key.to_s }
h1 # => {"foo"=>0, "bar"=>1, "baz"=>2}

h.transform_keys(foo: :bar, bar: :foo)
#=> {bar: 0, foo: 1, baz: 2}

h.transform_keys(foo: :hello, &:to_s)
#=> {:hello=>0, "bar"=>1, "baz"=>2}

覆盖重复键的值:

h = {foo: 0, bar: 1, baz: 2}
h1 = h.transform_keys {|key| :bat }
h1 # => {:bat=>2}

如果没有给出块,则返回一个新的枚举器:

h = {foo: 0, bar: 1, baz: 2}
e = h.transform_keys # => #<Enumerator: {:foo=>0, :bar=>1, :baz=>2}:transform_keys>
h1 = e.each { |key| key.to_s }
h1 # => {"foo"=>0, "bar"=>1, "baz"=>2}

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Hash.transform_keys。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。