在Ruby中創(chuàng)建和使用哈希的教程
哈希(Hash)是類似 "employee" => "salary" 這樣的鍵值對(duì)的集合。哈希的索引是通過(guò)任何對(duì)象類型的任意鍵來(lái)完成的,而不是一個(gè)整數(shù)索引,其他與數(shù)組相似。
通過(guò)鍵或值遍歷哈希的順序看起來(lái)是隨意的,且通常不是按照插入順序。如果您嘗試通過(guò)一個(gè)不存在的鍵訪問(wèn)哈希,則方法會(huì)返回 nil。
創(chuàng)建哈希
與數(shù)組一樣,有各種不同的方式來(lái)創(chuàng)建哈希。您可以通過(guò) new 類方法創(chuàng)建一個(gè)空的哈希:
months = Hash.new
您也可以使用 new 創(chuàng)建帶有默認(rèn)值的哈希,不帶默認(rèn)值的哈希是 nil:
months = Hash.new( "month" ) or months = Hash.new "month"
當(dāng)您訪問(wèn)帶有默認(rèn)值的哈希中的任意鍵時(shí),如果鍵或值不存在,訪問(wèn)哈希將返回默認(rèn)值:
#!/usr/bin/ruby
months = Hash.new( "month" )
puts "#{months[0]}"
puts "#{months[72]}"
這將產(chǎn)生以下結(jié)果:
month
month
#!/usr/bin/ruby
H = Hash["a" => 100, "b" => 200]
puts "#{H['a']}"
puts "#{H['b']}"
這將產(chǎn)生以下結(jié)果:
100 200
您可以使用任何的 Ruby 對(duì)象作為鍵或值,甚至可以使用數(shù)組,所以下面的實(shí)例是一個(gè)有效的實(shí)例:
[1,"jan"] => "January"
哈希內(nèi)建方法
我們需要有一個(gè) Hash 對(duì)象的實(shí)例來(lái)調(diào)用 Hash 方法。下面是創(chuàng)建 Hash 對(duì)象實(shí)例的方式:
Hash[[key =>|, value]* ] or
Hash.new [or] Hash.new(obj) [or]
Hash.new { |hash, key| block }
這將返回一個(gè)使用給定對(duì)象進(jìn)行填充的新的哈?!,F(xiàn)在,使用創(chuàng)建的對(duì)象,我們可以調(diào)用任意可用的實(shí)例方法。例如:
#!/usr/bin/ruby
$, = ", "
months = Hash.new( "month" )
months = {"1" => "January", "2" => "February"}
keys = months.keys
puts "#{keys}"
這將產(chǎn)生以下結(jié)果:
2, 1
下面是公共的哈希方法(假設(shè) hash 是一個(gè) Hash 對(duì)象):




相關(guān)文章
CentOS中配置Ruby on Rails環(huán)境
經(jīng)過(guò)一個(gè)上午的折騰,終于把ROR環(huán)境在CentOS中搞定,繞了很多彎路,把文章寫(xiě)下來(lái)總結(jié)一下2014-03-03
Ruby和Shell腳本實(shí)現(xiàn)判斷成績(jī)及格功能
這篇文章主要介紹了Ruby和Shell腳本實(shí)現(xiàn)判斷成績(jī)及格功能,使用Ruby實(shí)現(xiàn)這個(gè)功能非常簡(jiǎn)潔優(yōu)雅,而Shell的實(shí)現(xiàn)就比較傳統(tǒng)了,需要的朋友可以參考下2015-01-01
學(xué)習(xí)Ruby你需要了解的相關(guān)知識(shí)(rvm, gem, bundle, rake, rails等)
這篇文章主要介紹了學(xué)習(xí)Ruby你需要了解的相關(guān)知識(shí)(rvm, gem, bundle, rake, rails等),需要的朋友可以參考下2014-06-06
Ruby的面向?qū)ο蠓绞骄幊虒W(xué)習(xí)雜記
Ruby是具有面向?qū)ο筇匦缘木幊陶Z(yǔ)言,這里整理了一些Ruby的面向?qū)ο蠓绞骄幊虒W(xué)習(xí)雜記,包括類與方法等基本的面向?qū)ο笠氐闹R(shí),需要的朋友可以參考下2016-05-05

