Ruby中的哈希、集合、CSV和目录操作
1. 哈希(Hash)的特殊用法
在Ruby里,由于 to_proc 的存在,我们常用在符号上的 & 技巧也能用于哈希。示例如下:
hash = {a: 1, b: 2, c: 3}
hash.to_a
# => [[:a, 1], [:b, 2], [:c, 3]]
hash.flatten
# => [:a, 1, :b, 2, :c, 3]
hash.to_s
# => "{:a=>1, :b=>2, :c=>3}"
hash.invert
# => {1=>:a, 2=>:b, 3=>:c}
hash_proc = hash.to_proc
hash_proc.call(:a)
# => 1
[:a, :b, :c].map(&hash) # => [1, 2, 3]
此外, Hash#transform_keys 和 Hash#transform_values 方法在仅需修改哈希部分内容时,是 map 的不错替代。
- Hash#transform_keys :返回一个新哈希,其中每个键值对的值与原哈希相同,但键是块的返回结果。若传入可选的哈希参数,会先在该参数中查找键,再尝试执行块。
- Hash#transform_values :返回的新哈希中
超级会员免费看
订阅专栏 解锁全文
426

被折叠的 条评论
为什么被折叠?



