在Ruby中创建和使用哈希的教程

 更新时间:2015年04月10日 10:44:42   投稿:goldensun  
这篇文章主要介绍了在Ruby中创建和使用哈希的教程,罗列了Ruby中各种使用哈希的方法,需要的朋友可以参考下

哈希(Hash)是类似 "employee" => "salary" 这样的键值对的集合。哈希的索引是通过任何对象类型的任意键来完成的,而不是一个整数索引,其他与数组相似。

通过键或值遍历哈希的顺序看起来是随意的,且通常不是按照插入顺序。如果您尝试通过一个不存在的键访问哈希,则方法会返回 nil。
创建哈希

与数组一样,有各种不同的方式来创建哈希。您可以通过 new 类方法创建一个空的哈希:

months = Hash.new

您也可以使用 new 创建带有默认值的哈希,不带默认值的哈希是 nil:

months = Hash.new( "month" )
 
or
 
months = Hash.new "month"

当您访问带有默认值的哈希中的任意键时,如果键或值不存在,访问哈希将返回默认值:

#!/usr/bin/ruby
 
months = Hash.new( "month" )
 
puts "#{months[0]}"
puts "#{months[72]}"

这将产生以下结果:

month
month
#!/usr/bin/ruby
 
H = Hash["a" => 100, "b" => 200]
 
puts "#{H['a']}"
puts "#{H['b']}"

这将产生以下结果:

100
200

您可以使用任何的 Ruby 对象作为键或值,甚至可以使用数组,所以下面的实例是一个有效的实例:

[1,"jan"] => "January"

哈希内建方法

我们需要有一个 Hash 对象的实例来调用 Hash 方法。下面是创建 Hash 对象实例的方式:

Hash[[key =>|, value]* ] or
 
Hash.new [or] Hash.new(obj) [or]
 
Hash.new { |hash, key| block }

这将返回一个使用给定对象进行填充的新的哈希。现在,使用创建的对象,我们可以调用任意可用的实例方法。例如:

#!/usr/bin/ruby
 
$, = ", "
months = Hash.new( "month" )
 
months = {"1" => "January", "2" => "February"}
 
keys = months.keys
 
puts "#{keys}"

这将产生以下结果:

2, 1

下面是公共的哈希方法(假设 hash 是一个 Hash 对象):

2015410104412429.jpg (934×741)

2015410104231814.jpg (938×727)

2015410104454513.jpg (938×704)

2015410104526360.jpg (935×563)

相关文章

  • 关于Ruby on Rails路由配置的一些建议

    关于Ruby on Rails路由配置的一些建议

    这篇文章主要介绍了关于Ruby on Rails路由配置的一些建议,作者提出了相关代码编写时一些值得注意的地方,需要的朋友可以参考下
    2015-08-08
  • Ruby信号处理详解

    Ruby信号处理详解

    这篇文章主要介绍了Ruby信号处理详解,包含了Ruby使用Process.kill发送信号,Ruby使用trap()设置信号处理程序等需要的朋友可以参考下
    2022-04-04
  • 在Ruby on Rails中优化ActiveRecord的方法

    在Ruby on Rails中优化ActiveRecord的方法

    这篇文章主要介绍了在Ruby on Rails中优化ActiveRecord的方法,本文来自于IBM官方网站技术文档,需要的朋友可以参考下
    2015-04-04
  • ruby执行周期性任务的三种gem介绍

    ruby执行周期性任务的三种gem介绍

    无论是用ruby做系统管理,还是用rails做web开发,都可能遇到周期性任务,它们按照一定时间周期(1小时,2天......)持续地触发。在ruby中,我认为一次性任务使用 sidekiq 来完成是非常方便的,而周期性的任务就需要用到 whenever , sidetiq , clockwork 等等gem了。
    2014-07-07
  • Ruby实现插入排序算法及进阶的二路插入排序代码示例

    Ruby实现插入排序算法及进阶的二路插入排序代码示例

    插入排序即是把已有的有序序列从后向前扫描插入元素,数值大的向后移动,这里我们就来看一下使用Ruby实现插入排序算法及进阶的二路插入排序代码示例
    2016-06-06
  • Ruby on Rails网站项目构建简单指南

    Ruby on Rails网站项目构建简单指南

    Rails项目通过Ruby世界中的gem和rake工具来构建起来真的相当方便,这里就给大家整理了一份Ruby on Rails网站项目构建简单指南,需要的朋友可以参考下
    2016-06-06
  • 在阿里云 (aliyun) 服务器上搭建Ruby On Rails环境

    在阿里云 (aliyun) 服务器上搭建Ruby On Rails环境

    最近总是在配置阿里云的服务器,遇到不少问题,现小结一下,供大家参考~~
    2014-06-06
  • Ruby面向对象编程详解

    Ruby面向对象编程详解

    这篇文章主要介绍了Ruby面向对象编程详解,本文讲解了类的定义、定义对象、initialize方法、实例变量、类变量、类常量、类的继承等内容,需要的朋友可以参考下
    2014-10-10
  • Ruby与Ruby on Rails框架环境搭建的简明教程

    Ruby与Ruby on Rails框架环境搭建的简明教程

    这篇文章主要介绍了Ruby与Ruby on Rails框架环境搭建的简明教程,包括RubyGems的升级与OpenSSL的支持等配置,需要的朋友可以参考下
    2016-05-05
  • Ruby中的Socket编程简单入门

    Ruby中的Socket编程简单入门

    这篇文章主要介绍了Ruby中的Socket编程简单入门,是Ruby网络编程学习中的基础知识,需要的朋友可以参考下
    2015-05-05

最新评论