我有一张地图,其中键(一个字符串)的字符数可以变化很多,我想要智能地打印它:
MAP = {
"key1" => "value1",
"key2" => "value2",
}
会打印:
key1 -> value1
key2 -> value2
和
MAP = {
"key1" => "value1",
"key2" => "value2",
"key3_dam_it_you_are_a_big_one_indeed" => "value3",
}
会打印:
key1 -> value1
key2 -> value2
key3_dam_it_you_are_a_big_one_indeed -> value3
他的想法是key1和key2会根据key3的大小改变他们的打印行。
谢谢!
答案 0 :(得分:1)
怎么样?
class Hash
def nice_print
max_key_length = keys.map(&:length).max
each { |key, value| puts "#{key.ljust(max_key_length)} -> #{value}" }
end
end
你打电话
MAP.nice_print