ruby 哈希排序注意事项

1
2
3
4
5
6
7
8
9
10
# 如果key的数据类型不一致,会导致异常,其实这种情况已经不是第一次遇上了
# ArgumentError: comparison of Array with Array failed
hash = {c: 3, "a" => 1, b:2}
# 可以用hash#sort_by解决,把key统一成一致的数据类型
hash.sort_by{|k,v|k.to_s}
# 等效于
hash.sort_by{|h|h[0].to_s}
# 最终的输出结果为
#=> [["a", 1], [:b, 2], [:c, 3]]