2013-08-30 189 views
-1

我有一個地圖,鍵(串)可以有一個非常易變的字符數,我想智能打印:紅寶石相當打印字符串

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

,只要你想,爲什麼不去做呢? – sawa

+0

因爲每次我想要一輛車,我都試圖不重新實施車輪。這通常是語言內置的東西的類型。 – mors

+0

那麼爲什麼不使用該內置函數呢? – sawa

回答

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 
+0

ljust像一個cham工作〜謝謝! – mors