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'
散列(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'
相关文章推荐
- ruby中数组的定义和使用
- ruby中的控制逻辑语句
- ruby中的打印函数print | puts | p
- Ruby中的各种方法定义和调用(函数式方法|实例方法|类方法)
- ruby变量
- Cocoa pods最新版的安装方法
- Xcode无法安装基于ruby的插件问题的解决
- Xcode无法安装基于ruby的插件问题的解决
- Xcode无法安装基于ruby的插件问题的解决
- CocoaPods安装
- Elastic Search安装及使用
- windows7下安装ruby,rubyGems和devkit
- Ruby常用文件操作代码实例
- ruby 文件操作
- Ubuntu安装ruby:使用RVM
- ruby操作excel文件
- ruby操作excel(从打开-输入信息-保存-etc)
- ruby 关于目录操作
- Ruby语言学习系列--基本的ruby语法
- Ruby on Rails教程 和Ruby&Rails 入门大全,对新手很有用