gpt4 book ai didi

ruby-on-rails - Ruby 数组到索引哈希?

转载 作者:数据小太阳 更新时间:2023-10-29 06:45:34 28 4
gpt4 key购买 nike

我经常发现自己在 Ruby 中构建查找表,通常是为了缓存一些昂贵的计算或构建要传递给 View 的内容。我想一定有一个简短易读的习惯用法,但我们想不出一个。例如,假设我想从

[65, 66, 67, ...]

最后是

{65 => "A", 66 => "B", 67 => "C", ...}

我们能想到的不太漂亮的成语包括:

array = (65..90).to_a

array.inject({}) {|hash, key| hash[key]=key.chr; hash}
{}.tap {|hash| array.each {|key| hash[key] = key.chr}}
Hash[array.zip(array.map{|key| key.chr})]

但所有这些都有点痛苦:难以阅读、容易搞砸、意图不明确。 Ruby(或某些 Rails 助手)肯定对此有一些不错的魔力吗?

最佳答案

怎么样

 Hash[(65..90).map { |i| [i, i.chr] }]

我认为这是非常明显且不言自明的。此外,我不存在更简单的方法来解决这个相当具体的任务,不幸的是,Ruby 没有与 Python 中的字典理解相媲美的东西。如果需要,可以使用 Facets gem,其中包括一些接近的东西:

require 'facets'
(65..90).mash { |i| [i, i.chr] }

关于ruby-on-rails - Ruby 数组到索引哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9475221/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com