紅寶石中的散列

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

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

散列用于存儲所謂的密鑰/值對。密鑰/值對具有標識符,用于表示要訪問的散列的哪個變量要存儲上海科普網在散列中該位置的變量。例如,教師可以將學生's成績存儲在哈希中。Bob's等級將通過鍵"Bob"在哈希中訪問;存儲在該位置的變量將是Bob's等級。

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

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

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

散列文件

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

#!/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