主页 > 知识库 > Ruby中的数组和散列表的使用详解

Ruby中的数组和散列表的使用详解

热门标签:语音系统 企业做大做强 Win7旗舰版 客户服务 百度AI接口 呼叫中心市场需求 电话运营中心 硅谷的囚徒呼叫中心

Ruby的数组(arrays)和散列表(hashes)是被索引的收集(indexed collections).

两者都存储对象的集合,通过键(key)来访问。数组的键是整数。而散列表支持以任何对象作为它的键。数组和散列表会按需调整大小来保存新的元素。访问数组元素是高效的,但是散列表提供了灵活性。任何具体的数组或散列表可以保存不同类型的对象。

使用数组字面量(array literal)--即方括号之间放一组元素--可以创建和初始化新的数组对象。有了数组对象,在方括号之间提供索引便可以访问单个元素,如下例所示,注意Ruby数组的索引从零开始。

a=[1,'cat',3.14]     #有三个元素的数组

#访问第一个元素

a[0]  -> 1

#设置第三个元素

a[2] = nil

#显示这个数组

a ->[1,'cat',nil]

你可能已注意到在这个例子中使用了nil这个特别的值。许多语言中nil(或null)的概念是指“没有对象”。在Ruby中,这是不一样的;nil是一个对象,与别的对象一样,只不过它用来表示没有任何东西的对象。

有时候创建一组单词的数组是一件痛苦的事情--要处理许多引号和逗号。幸运的是,Ruby有一种快捷方式:%w 能够完成我们想做的事情。

a = ['ant','bee','cat','dog','elk']

a[0] -> "ant"

a[3] -> "dog"

#this is the same:

a = %w{ant bee cat dog elk}

a[0] -> "ant"

a[3] -> "dog"

Ruby的散列表与数组相似。散列表字面量(hash literal)使用花括号而不是方括号。这个字面量必须为每一项提供两个对象:一个键(key)和一个值(value)。

例如,你可能想将乐器映射到它们所属的交响乐章节,可以用散列表这么来做:

inst_section = {

'cello'   => 'string',

'clarinet' => 'woodwind',

'drum'  => 'percussion',

'oboe'   => 'woodwind',

'trumpet' => 'brass',

'violin'   => 'string'

}

=>的左边是键(key),右边是其对应的值(value)。在一个散列表里面,键必须是唯一的(不能有两个“drum”项)。散列表里面的键和值可以是任意对象--你可能会有这样的散列表,它的值是数组或别的散列表等。

散列表使用与数组相同的方括号表示法来进行索引。

inst_section['oboe']           -> "woodwind"

inst_section['cello']            -> "string"

inst_section['bassoon']         -> nil

正如上例所示,默认情况下,如果用一个散列表没有包含的键进行索引,散列表就返回nil。通常这样是很方便的,比如在条件表达式中nil就意味着false。而有时候你可能想改变这个默认动作。比如使用散列表来计算每个键出现的次数时,如果这个默认值是0的话就会很方便。这很容易做到:当创建一个新的空散列表时,可以指定一个默认值。

histogram = Hash.new(0)

histogram['key1']            ->0

histogram['key1'] = histogram['key1']+1

histogram['key1']            ->1

您可能感兴趣的文章:
  • Ruby的字符串与数组求最大值的相关问题讨论
  • Ruby中数组的一些相关使用方法
  • 简单介绍Ruby on Rails对PostgreSQL数组类型的支持
  • Ruby数组(Array)学习笔记
  • Ruby教程之注释、变量声明以及数组操作
  • Ruby创建数组方法总结

标签:长沙 山西 海南 崇左 安康 喀什 济南 山西

巨人网络通讯声明:本文标题《Ruby中的数组和散列表的使用详解》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266