詳細(xì)解讀Ruby哈希表相關(guān)概念
Ruby語言的應(yīng)用范圍還是比較廣泛的,不過知道這種新型語言的人可能還是不太多。Ruby哈希表使用花括號而不是中括號。哈希表需要為每個項提供兩個對象:一個是鍵,另一個是它的值。#t#
例如,你想為樂隊表示音樂器材。你可以使用Ruby哈希表來實現(xiàn)它。
- inst_section = {
- 'cello' => 'string',
- 'clarinet' => 'woodwind',
- 'drum' => 'percussion',
- 'oboe' => 'woodwind',
- 'trumpet' => 'brass',
- 'violin' => 'string'
- }
在=>左邊的是鍵,在右邊的是它對應(yīng)的值。鍵在每個具體的哈希表中是唯一的,你不能有兩個"drum"項。鍵和值在哈希表中可以是任意的對象——你可以哈希數(shù)組,甚至其它的哈希表等等。
Ruby哈希表使用和數(shù)組一樣的中括號索引。
- inst_section['oboe']-> "woodwind"
- inst_section['cello']-> "string"
- inst_section['bassoon']-> nil
就如最后一個例子中所看到的,如果鍵不存在,Ruby哈希表默認(rèn)是返回nil。通常,這樣做很方便,在使用條件表達(dá)式中,nil的意思是false。有時候,你想要改變這個默認(rèn)值。例如,你想計算哈希表中鍵的訪問次數(shù),如果默認(rèn)值是0就比較方便了。當(dāng)你創(chuàng)建一個新的空的哈希表時很容易指定一個默認(rèn)值。
- histogram = Hash.new(0)
- histogram['key1']-> 0
- histogram['key1'] =
histogram['key1'] + 1- histogram['key1']-> 1