ruby中的哈希

数组不是Ruby中管理变量集合的唯一方法。另一种类型的变量集合是散列,也称为关联数组。散列类似于数组,因为它是存储其他变量的变量。但是,散列与数组不同,因为存储的变量不是按任何特定顺序存储的,它们是用键而不是按它们在集合中的位置检索的。...

数组不是Ruby中管理变量集合的唯一方法。另一种类型的变量集合是散列,也称为关联数组。散列类似于数组,因为它是存储其他变量的变量。但是,散列与数组不同,因为存储的变量不是按任何特定顺序存储的,它们是用键而不是按它们在集合中的位置检索的。

Businessman using computer

使用键/值对创建哈希

散列用于存储所谓的键/值对。键/值对具有一个标识符,表示要访问哈希中的哪个变量,以及要存储在哈希中该位置的变量。例如,教师可以将学生的分数存储在散列中。Bob的等级将通过键“Bob”以散列形式访问,存储在该位置的变量将是Bob的等级。

哈希变量的创建方法与数组变量相同。最简单的方法是创建一个空哈希对象,并用键/值对填充它。请注意,使用了索引运算符,但使用了学生的姓名而不是数字。​​

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

#!/usr/bin/env rubygrades = Hash.newgrades["Bob"] = 82grades["Jim"] = 94grades["Billy"] = 58puts grades["Jim"]

散列文字

与数组一样,可以使用哈希文本创建哈希。散列文字使用大括号而不是方括号,键值对由=>连接;。例如,具有单个键/值对Bob/84的哈希将如下所示:{“Bob”=>84}。通过使用逗号分隔,可以将其他键/值对添加到哈希文本中。在下面的示例中,创建了一个哈希,其中包含许多学生的分数。

#!/usr/bin/env rubygrades = { "Bob" => 82,"Jim" => 94,"Billy" => 58}puts grades["Jim"]

访问散列中的变量

有时您必须访问散列中的每个变量。您仍然可以使用each循环遍历散列中的变量,尽管其工作方式与使用each循环和数组变量不同。因为散列是无序的,所以每个散列在键/值对上循环的顺序可能与插入它们的顺序不同。在本例中,分数散列将循环并打印。

#!/usr/bin/env rubygrades = { "Bob" => 82,"Jim" => 94,"Billy" => 58}grades.each do|name,grade|puts "#{name}: #{grade}"end

  • 发表于 2021-10-10 08:20
  • 阅读 ( 188 )
  • 分类:编程

你可能感兴趣的文章

红宝石(ruby)和python(python)的区别

...一种解释语言。Ruby不是一个编译语言C或C++的快速。 Ruby中的方法与其他编程语言中的函数类似。方法包含一组要执行某项任务的语句。Ruby使用块定义闭包。闭包具有从外部作用域读取和写入变量的权限。Ruby有数组、哈希等数据...

  • 发布于 2020-10-19 17:41
  • 阅读 ( 338 )

python(python)和红宝石(ruby)的区别

...作。 实例化 –实例化是从类创建对象实例的过程。Ruby中的实例变量是严格私有的,这意味着它们只能通过方法访问,因此需要方法值。实例变量定义“getter”和“setter”方法来访问属性,前者是属性的名称,后者以等号作为...

  • 发布于 2021-06-25 22:26
  • 阅读 ( 246 )

哈希表(hashtable)和词典(dictionary)的区别

...string类型。 Figure 3: C# program with Dictionary 添加到上述字典中的所有元素都具有String类型的键和值对。将键和值打印到控制台将得到类似于图4的输出。因此,它保持**顺序。 Figure 4: Dictionary Program Output 总的来说,Dictionary执行速度...

  • 发布于 2021-06-30 21:47
  • 阅读 ( 1645 )

静止的(static)和动态哈希(dynamic hashing)的区别

...。换句话说,bucket地址不变。因此,在该方法中,存储器中的数据桶的数目始终保持恒定。 静态散列的操作如下。 **–使用静态哈希输入记录时,哈希函数(h)计算存储记录的搜索键(k)的存储桶地址。Bucket地址=h(K)。 搜...

  • 发布于 2021-07-01 07:30
  • 阅读 ( 324 )

perl语言(perl)和红宝石(ruby)的区别

...。 Perl是一种基于解释器的语言。因此,解释器将源代码中的每一行转换为机器代码。因此,Perl与C和C++等语言相比较慢。有第三方库可用于RDBMS,如MySQL和Oracle。此外,这种语言与HTML和XML等标记语言配合得很好。此外,可以通...

  • 发布于 2021-07-01 12:05
  • 阅读 ( 368 )

红宝石(ruby)和ruby on rails(ruby on rails)的区别

...的 类型 开源 开源 好处 它是一种动态编程语言,Ruby中的变量都是动态类型,具有更大的灵活性 Web应用程序可以在更短的时间内编写,它的gems(函数库)可以在不同的代码库中使用构建在Ruby上 网站 ruby-lang.org网站 rubyonrails...

  • 发布于 2021-07-12 08:27
  • 阅读 ( 249 )

ruby for kids教你的孩子(和你自己)ruby编程语言

...序观看屏幕播放,了解Ruby编程的各个方面,重点是gosu库中的游戏开发。这是一种有趣的方法来教你的孩子如何编程,如果你还不是Ruby专家,它甚至可以帮助你学习语言。Ruby For childs与Hakety-Hack(另一个很棒的Ruby学习资源)有几...

  • 发布于 2021-07-25 04:52
  • 阅读 ( 173 )

ruby中的全局变量

全局变量是可以从程序中的任何位置访问的变量,而不考虑范围。它们以$(美元符号)字符开头表示。然而,全局变量的使用通常被认为是“非Ruby”,并且您很少看到它们。 定义全局变量 全局变量的定义和使用与任何其...

  • 发布于 2021-09-05 06:00
  • 阅读 ( 175 )

如何在ruby中组合数组(combine arrays in ruby)

...可能希望避免这种情况。对象创建不是免费的,这些操作中的每一个都会创建第三个数组。如果要在位修改数组,使用新元素使其变长,可以使用&lt&书信电报;操作人员然而,如果你尝试这样的事情,你会得到意想不到的...

  • 发布于 2021-09-12 07:29
  • 阅读 ( 211 )

ruby编程语言初学者指南

...不可能创建一个非常重要的Ruby程序。Ruby在原始计算任务中的性能并不总是和其他类似的脚本语言一样好。也就是说,未来的版本将解决这些问题,而JRuby等替代实现可以作为解决这些问题的解决方案。 ruby是如何使用的? Ruby...

  • 发布于 2021-09-12 07:30
  • 阅读 ( 196 )
wbdxw1697
wbdxw1697

0 篇文章

相关推荐