紅寶石中的散列

數(shù)組不是管理Ruby中變量集合的**方法。另一種類型的變量集合是哈希,也稱為關(guān)聯(lián)數(shù)組。散列就像一個數(shù)組,它是一個存儲其他變量的變量。但是,散列與數(shù)組不同,因為存儲的變量不是以任何特定順序存儲的,而是使用密鑰檢索它們,而不是按它們在集合中的位置檢索它們。

使用密鑰/值對創(chuàng)建哈希

散列用于存儲所謂的密鑰/值對。密鑰/值對具有標(biāo)識符,用于表示要訪問的散列的哪個變量要存儲上??破站W(wǎng)在散列中該位置的變量。例如,教師可以將學(xué)生's成績存儲在哈希中。Bob's等級將通過鍵"Bob"在哈希中訪問;存儲在該位置的變量將是Bob's等級。

可以以與數(shù)組變量相同的方式創(chuàng)建散列變量。最簡單的方法是創(chuàng)建一個空的哈希對象并用鍵/值對填充它。請注意,使用索引運算符,但使用student's名稱代替數(shù)字

請記住,散列是無序的,這意味著數(shù)組中沒有定義的開始或結(jié)束。所以,你不能附加到一個散列。使用索引運算符將值簡單地插入哈希中。

#!/usr/bin/env紅寶石
等級=Hash.new
等級["Bob"]=82
等級["Jim"]=94
等級["Billy"]=58
輸入grad

散列文件

就像數(shù)組一樣,可以使用散列文獻(xiàn)創(chuàng)建散列。散列l(wèi)iterals使用大括號而不是方括號,關(guān)鍵字對通過=>連接。例如,具有Bob/84的單個鍵/值對的散列如下所示:{"Bob"=>84}。其他密鑰/值對可以通過文字添加到哈希中用逗號分隔它們。在下面的例子中,創(chuàng)建了一個散列,其中包含許多學(xué)生的成績。

#!/usr/bin/env ruby
等級={"Bob"=>82,
"Jim"=>94,
"Billy"=>58
}
輸入grad

訪問哈希

中的變量

可能有時候你必須訪問散列中的每個變量。您仍然可以使用each循環(huán)循環(huán)哈希中的變量,盡管它會以與使用數(shù)組變量的each循環(huán)相同的方式運行't的工作方式。由于散列是無序的,因此每個將循環(huán)密鑰/值對的順序可能與插入它們的順序不同。在這個例子中,等級的散列將被循環(huán)并打印。

#!/usr/bin/env ruby
等級={"Bob"=>82,
"Jim"=>94,
"Billy"=>58
}
等級做|名稱,等級|
放置"#{name}:#{gra

科普_1