?
?
哈希表的生成:?
一個(gè)關(guān)聯(lián)數(shù)組不通過(guò)下標(biāo)來(lái)訪問(wèn),而是通過(guò)主鍵(key)訪問(wèn).這樣的數(shù)組有時(shí)被叫作哈希(hash).將一對(duì)對(duì)的元素用逗號(hào)分隔開(kāi),并用大括號(hào)({})括起來(lái),這樣就組成了一個(gè)哈希表.你用一個(gè)關(guān)鍵字在哈希表里進(jìn)行搜索,就像你在數(shù)組里用索引來(lái)提取數(shù)據(jù)一樣.
例如:
a={"?Allex"=>2000,"?帆布背包?"=>2003}?
在這個(gè)例子中,"?Allex"?和?"?帆布背包?"?是主鍵(key),2000?和?2003?是實(shí)際的數(shù)值。這樣,主鍵和數(shù)值之間用“?=>”?號(hào)連接,形成關(guān)系。
如果要取出實(shí)際的數(shù)值,如下所示:
a={"?Allex"=>2000,"?帆布背包?"=>2003}?
p?a["?Allex"]?#?=>?2000
p?a["?帆布背包?"]?#?=>?2003
p?a["?中國(guó)"]?#?=>?nil?
這里以字符串為key?,但對(duì)其他的數(shù)據(jù)類(lèi)型也一樣。
對(duì)哈希表元素的追加,如下示例:
a?=?{}???#建一個(gè)空表?
a?=?{}???#建一個(gè)空表?
a["?Allex"]=2000??#賦值
p?a?#=>{"?Allex"=>2000}
哈希表屬于Hash類(lèi)的實(shí)例,可以調(diào)用這個(gè)類(lèi)的相關(guān)方法。
例如刪除一個(gè)元素:
a={"?Allex"=>2000,"?帆布背包?"=>2003}?
a.delete("?帆布背包?")
p?a?#=>{"?Allex"=>2000}
查看是否包含某鍵值:
a={"?Allex"=>2000,"?帆布背包?"=>2003}
p?a.include?("?Allex")?#?=>?true?
p?a.include?("?中中中?")?#?=>?false
?
取得?keys?的方法:
a?=?{3=>6,?4=>10,?5=>15}?
p?a.keys?#?=>?[5,?3,?4]?
把keys放在for循環(huán)中:
a?=?{3=>6,?4=>10,?5=>15}
for?k?in?a.keys
????p?k
end?
如果使用?values,可以取得數(shù)值方面的一覽表。
a?=?{3=>6,?4=>10,?5=>15}
for?v?in?a.values
????p?v
end?
版權(quán)聲明:RUBY文檔中心的所有文章標(biāo)明[原創(chuàng)]的均為本站作品,版權(quán)屬RUBY中文化計(jì)劃,若轉(zhuǎn)載請(qǐng)注明;標(biāo)明[翻譯]的其外文版權(quán)歸原作者,譯文版權(quán)屬RUBY中文化計(jì)劃;標(biāo)明[轉(zhuǎn)貼]的,若原作者感到侵犯了他的著作權(quán),那么請(qǐng)及時(shí)跟主持人聯(lián)系,我們會(huì)盡快更正。
?