?
?
哈希表的生成:?
一個(gè)關(guān)聯(lián)數(shù)組不通過下標(biāo)來訪問,而是通過主鍵(key)訪問.這樣的數(shù)組有時(shí)被叫作哈希(hash).將一對對的元素用逗號分隔開,并用大括號({})括起來,這樣就組成了一個(gè)哈希表.你用一個(gè)關(guān)鍵字在哈希表里進(jìn)行搜索,就像你在數(shù)組里用索引來提取數(shù)據(jù)一樣.
例如:
a={"?Allex"=>2000,"?帆布背包?"=>2003}?
在這個(gè)例子中,"?Allex"?和?"?帆布背包?"?是主鍵(key),2000?和?2003?是實(shí)際的數(shù)值。這樣,主鍵和數(shù)值之間用“?=>”?號連接,形成關(guān)系。
如果要取出實(shí)際的數(shù)值,如下所示:
a={"?Allex"=>2000,"?帆布背包?"=>2003}?
p?a["?Allex"]?#?=>?2000
p?a["?帆布背包?"]?#?=>?2003
p?a["?中國"]?#?=>?nil?
這里以字符串為key?,但對其他的數(shù)據(jù)類型也一樣。
對哈希表元素的追加,如下示例:
a?=?{}???#建一個(gè)空表?
a?=?{}???#建一個(gè)空表?
a["?Allex"]=2000??#賦值
p?a?#=>{"?Allex"=>2000}
哈希表屬于Hash類的實(shí)例,可以調(diào)用這個(gè)類的相關(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)載請注明;標(biāo)明[翻譯]的其外文版權(quán)歸原作者,譯文版權(quán)屬RUBY中文化計(jì)劃;標(biāo)明[轉(zhuǎn)貼]的,若原作者感到侵犯了他的著作權(quán),那么請及時(shí)跟主持人聯(lián)系,我們會盡快更正。
?