您的位置:首页 > 编程语言 > Ruby

ruby中散列的定义和使用

2016-06-18 03:03 344 查看
(1)散列的概念
        
散列(hash)也是一个程序里常用到的容器。散列是键值对(key-value pair)的一种数据结构。在 Ruby中,一般是以字符串或者符号(Symbol)作为键,来保存对应的对象。
       
在 Ruby 中,符号(symbol)与字符串对象很相似,符号也是对象,一般作为名称标签来使用,用来表示方法等的对象的名称。创建符号,只需在标识符的开头加上:
就可以了。例如:
sym= :foo # 表示符号“:foo”
sym2 =:"foo" # 意思同上
       
符号能实现的功能,大部分字符串也能实现。但像散列键这样只是单纯判断“是否相等”的处理中,使用符号会比字符串比较更加有效率,因此在实际编程中我们也会时常用到符号。符号与字符串可以互相任意转换。对符号使用 to_s 方法,则可以得到对应的字符串。反之,对字符串使用 to_sym方法,则可以得到对应的符号。

(2)散列的创建
       
创建散列的方法与创建数组的差不多,不同的是,不使用 [],而是使用 {}
把创建的内容括起来。散列用=>来定义获取对象时所需的键(key),以及键相对应的对象(value)。例如:
address= {:name => "高桥", :pinyin =>"gaoqiao", :postal => "1234567"}

address= {"name" => "高桥", "pinyin" => "gaoqiao","postal" => "1234567"}
将符号当作键来使用时,程序还可以像下面这么写:
address= {name: "高桥", pinyin: "gaoqiao",postal: "1234567"}
(3)散列的使用
a)利用散列的键来访问数组中的元素
散列名[键]
b)散列的遍历
使用 each方法,我们可以遍历散列里的所有元素,逐个取出其元素的键和对应的值。循环数组时是按索引顺序遍历元素,循环散列时按照键值组合遍历元素。
散列.each do | 键变量, 值变量 |
 statement
end
c)修改散列的值
散列名[键] = 'xxx'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: