我想重命名一个哈希键。这一点:
myhash[preferred_name] = myhash.delete old_name 在哈希的最后一个索引处插入新的键值对。有没有一种方法可以在不添加新散列的情况下重命名散列?
发布于 2018-12-18 12:25:45
myhash.to_a.each { |a| a[0] = preferred_name if a[0] == old_name }.to_h或者:
h.map { |k, v| [k == old_name ? preferred_name : k, v] }.to_h不幸的是,这两种解决方案都将扫描整个结构-即使在找到匹配之后-因此,如果您的散列有许多条目,您可能会选择其他选项之一。
https://stackoverflow.com/questions/53819509
复制相似问题