红宝石中的散列

数组不是管理Ruby中变量集合的**方法。另一种类型的变量集合是哈希,也称为关联数组。散列就像一个数组,它是一个存储其他变量的变量。但是,散列与数组不同,因为存储的变量不是以任何特定顺序存储的,而是使用密钥检索它们,而不是按它们在集合中的位置检索它们。

使用密钥/值对创建哈希

散列用于存储所谓的密钥/值对。密钥/值对具有标识符,用于表示要访问的散列的哪个变量要存储上海科普网在散列中该位置的变量。例如,教师可以将学生's成绩存储在哈希中。Bob's等级将通过键"Bob"在哈希中访问;存储在该位置的变量将是Bob's等级。

可以以与数组变量相同的方式创建散列变量。最简单的方法是创建一个空的哈希对象并用键/值对填充它。请注意,使用索引运算符,但使用student's名称代替数字

请记住,散列是无序的,这意味着数组中没有定义的开始或结束。所以,你不能附加到一个散列。使用索引运算符将值简单地插入哈希中。

#!/usr/bin/env红宝石
等级=Hash.new
等级["Bob"]=82
等级["Jim"]=94
等级["Billy"]=58
输入grad

散列文件

就像数组一样,可以使用散列文献创建散列。散列literals使用大括号而不是方括号,关键字对通过=>连接。例如,具有Bob/84的单个键/值对的散列如下所示:{"Bob"=>84}。其他密钥/值对可以通过文字添加到哈希中用逗号分隔它们。在下面的例子中,创建了一个散列,其中包含许多学生的成绩。

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

访问哈希

中的变量

可能有时候你必须访问散列中的每个变量。您仍然可以使用each循环循环哈希中的变量,尽管它会以与使用数组变量的each循环相同的方式运行't的工作方式。由于散列是无序的,因此每个将循环密钥/值对的顺序可能与插入它们的顺序不同。在这个例子中,等级的散列将被循环并打印。

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

科普_1