Ruby中關(guān)于hash的基本使用方法
哈希鍵 - 值對的集合,類似這樣:"employee" => "salary"。它類似于數(shù)組,除了索引是通過任意鍵的任何對象的類型,而不是一個整數(shù)索引。
順序遍歷一個哈希鍵或值要么可能看起來是任意的,一般不會在插入順序。如果訪問的鍵的哈希值不存在,該方法將返回nil。
創(chuàng)建哈希:
使用數(shù)組中,有各種各樣的方法來創(chuàng)建哈希值??梢?new 類方法創(chuàng)建一個空的hash :
months = Hash.new
還可以使用 new 創(chuàng)建哈希,這是一個默認值,否則只是 nil:
or
months = Hash.new "month"
當訪問任何在哈希鍵,有一個默認值,如果鍵或值不存在,訪問哈希表將返回默認值:
#!/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對象作為鍵或值,甚至數(shù)組,那么下面的例子是一個有效的
[1,"jan"] => "January"
哈希內(nèi)置的方法:
我們需要有一個Hash對象實例調(diào)用哈希方法。正如我們所看到的,下面是Hash對象的方式來創(chuàng)建一個實例:
Hash[[key =>|, value]* ] or
Hash.new [or] Hash.new(obj) [or]
Hash.new { |hash, key| block }
這將返回一個新的哈希值具有給定的對象填充?,F(xiàn)在使用創(chuàng)建的對象,我們可以調(diào)用任何可用實例方法。例如:
#!/usr/bin/ruby
$, = ", "
months = Hash.new( "month" )
months = {"1" => "January", "2" => "February"}
keys = months.keys
puts "#{keys}"
這將產(chǎn)生以下結(jié)果:
2, 1
相關(guān)文章
win10下使用virtualbox + vagrant配置ruby開發(fā)機環(huán)境
Vagrant是一個基于Ruby的工具,用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境。它 使用Oracle的開源VirtualBox虛擬化系統(tǒng),使用 Chef創(chuàng)建自動化虛擬環(huán)境。搭配Cmder如絲般順滑,實現(xiàn)你所有關(guān)于Mac&Linux的幻想2017-08-08
詳解組合模式的結(jié)構(gòu)及其在Ruby設(shè)計模式編程中的運用
這篇文章主要介紹了組合模式的結(jié)構(gòu)及其在Ruby設(shè)計模式編程中的運用,組合模式在Ruby on Rails框架開發(fā)項目中也經(jīng)常被用到,需要的朋友可以參考下2016-03-03

