内容简介
第1部分 Ruby初体验
第1章 Ruby初探
1.1 Ruby的运行方法
1.1.1 ruby命令的执行方法
1.1.2 irb命令的执行方法
1.2 程序解说
1.2.1 对象
1.2.2 方法
1.3 字符串
1.3.1 换行符与\
1.3.2 ??与""
1.4 方法的调用
1.5 puts方法
1.6 p方法
1.7 中文的输出
1.8 数值表示与计算
1.8.1 数值
1.8.2 四则运算
1.8.3 数学相关的函数
1.9 变量
1.10 注释
1.11 控制语句
1.12 条件判断:if~then~end
1.13 循环
1.13.1 while语句
1.13.2 times方法
第2章 便利的对象
2.1 数组
2.1.1 数组的创建
2.1.2 数组对象
2.1.3 从数组中抽取对象
2.1.4 将对象保存到数组中
2.1.5 数组的元素
2.1.6 数组的大小
2.1.7 数组的循环
2.2 散列
2.2.1 什么是符号
2.2.2 散列的创建
2.2.3 散列的使用
2.2.4 散列的循环
2.3 正则表达式
第3章 创建命令
3.1 命令行的输入数据
3.2 文件的读取
3.2.1 从文件中读取内容并输出
3.2.2 从文件中逐行读取内容并输出
3.2.3 从文件中读取指定模式的内容并输出
3.3 方法的定义
3.4 其他文件的引用
第2部分 Ruby的基础
第4章 对象、变量和常量
4.1 对象
4.2 类
4.3 变量
4.4 常量
4.5 保留字
4.6 多重赋值
4.6.1 合并执行多个赋值操作
4.6.2 交换变量的值
4.6.3 获取数组的元素
第5章 条件判断
5.1 什么是条件判断
5.2 Ruby中的条件
5.3 逻辑运算符
5.4 if语句
5.5 unless语句
5.6 case语句
5.7 if修饰符与 unless修饰符
5.8 总结
第6章 循环
6.1 循环的基础
6.2 循环时的注意事项
6.3 实现循环的方法
6.4 times方法
6.5 for语句
6.6 普通的for语句
6.7 while语句
6.8 until语句
6.9 each方法
6.10 loop方法
6.11 循环控制
6.11.1 break
6.11.2 next
6.12 小结
第7章 方法
7.1 方法的调用
7.1.1 简单的方法调用
7.1.2 带块的方法调用
7.1.3 运算符形式的方法调用
7.2 方法的分类
7.2.1 实例方法
7.2.2 类方法
7.2.3 函数式方法
7.3 方法的定义
7.3.1 方法的返回值
7.3.2 定义带块的方法
7.3.3 参数个数不确定的方法
7.3.4 关键字参数
7.3.5 关于方法调用的一些补充
第8章 类和模块
8.1 类是什么
8.1.1 类和实例
8.1.2 继承
8.2 创建类
8.2.1 class语句
8.2.2 initialize方法
8.2.3 实例变量与实例方法
8.2.4 存取器
8.2.5 特殊变量self
8.2.6 类方法
8.2.7 常量
8.2.8 类变量
8.2.9 限制方法的调用
8.3 扩展类
8.3.1 在原有类的基础上添加方法
8.3.2 继承
8.4 alias与undef
8.4.1 alias
8.4.2 undef
8.5 单例类
8.6 模块是什么
8.7 模块的使用方法
8.7.1 利用Mix-in扩展功能
8.7.2 提供命名空间
8.8 创建模块
8.8.1 常量
8.8.2 方法的定义
8.9 Mix-in
8.9.1 查找方法的规则
8.9.2 extend方法
8.9.3 类与Mix-in
8.10 面向对象程序设计
8.10.1 对象是什么
8.10.2 面向对象的特征
8.10.3 鸭子类型
8.10.4 面向对象的例子
第9章 运算符
9.1 赋值运算符
9.2 逻辑运算符的应用
9.3 条件运算符
9.4 范围运算符
9.5 运算符的优先级
9.6 定义运算符
9.6.1 二元运算符
9.6.2 一元运算符
9.6.3 下标方法
第10章 错误处理与异常
10.1 关于错误处理
10.2 异常处理
10.3 异常处理的写法
10.4 后处理
10.5 重试
10.6 rescue修饰符
10.7 异常处理语法的补充
10.8 指定需要捕捉的异常
10.9 异常类
10.10 主动抛出异常
第11章 块
11.1 块是什么
11.2 块的使用方法
11.2.1 循环
11.2.2 隐藏常规处理
11.2.3 替换部分算法
11.3 定义带块的方法
11.3.1 执行块
11.3.2 传递块参数,获取块的值
11.3.3 控制块的执行
11.3.4 将块封装为对象
11.4 局部变量与块变量
第3部分 Ruby的类
第12章 数值类
12.1 数值类的构成
12.2 数值的字面量
12.3 算数运算
12.4 Math模块
12.5 数值类型转换
12.6 位运算
12.7 随机数
12.8 计数
12.9 近似值误差
第13章 数组类
13.1 复习数组
13.2 数组的创建方法
13.2.1 使用Array.new
13.2.2 使用%w与%i
13.2.3 使用to_a方法
13.2.4 使用字符串的split方法
13.3 索引的使用方法
13.3.1 获取元素
13.3.2 替换元素
13.3.3 插入元素
13.3.4 通过多个索引创建数组
13.4 作为集合的数组
13.4.1 集合的运算
13.4.2 “|”与“+”的不同点
13.5 作为列的数组
13.6 主要的数组方法
13.6.1 为数组添加元素
13.6.2 从数组中删除元素
13.6.3 替换数组元素
13.7 数组与迭代器
13.8 处理数组中的元素
13.8.1 使用循环与索引
13.8.2 使用each方法逐个获取元素
13.8.3 使用具有破坏性的方法实现循环
13.8.4 使用其他迭代器
13.8.5 创建专用的迭代器
13.9 数组的元素
13.9.1 使用简单的矩阵
13.9.2 初始化时的注意事项
13.10 同时访问多个数组
第14章 字符串类
14.1 字符串的创建
14.1.1 使用%Q与%q
14.1.2 使用Here Document
14.1.3 使用sprintf方法
14.1.4 使用``
14.2 获取字符串的长度
14.3 字符串的索引
14.4 字符串的连接
14.5 字符串的比较
14.6 字符串的分割
14.7 换行符的使用方法
14.8 字符串的检索与替换
14.8.1 字符串的检索
14.8.2 字符串的替换
14.9 字符串与数组的共同方法
14.9.1 与索引操作相关的方法
14.9.2 返回Enumerator对象的方法
14.9.3 与连接、反转(reverse)相关的方法
14.10 其他方法
14.11 日语字符编码的转换
14.11.1 encode方法
14.11.2 nkf库
第15章 散列类
15.1 复习散列
15.2 散列的创建
15.2.1 使用{}
15.2.2 使用Hash.new
15.3 值的获取与设定
15.3.1 一次性获取所有的键、值
15.3.2 散列的默认值
15.4 查看指定对象是否为散列的键或值
15.5 查看散列的大小
15.6 删除键值
15.7 初始化散列
15.8 合并两个散列
15.9 应用示例:计算单词数量
第16章 正则表达式类
16.1 关于正则表达式
16.1.1 正则表达式的写法与用法
16.1.2 正则表达式对象的创建方法
16.2 正则表达式的模式与匹配
16.2.1 匹配普通字符
16.2.2 匹配行首与行尾
16.2.3 指定匹配字符的范围
16.2.4 匹配任意字符
16.2.5 使用反斜杠的模式
16.2.6 重复
16.2.7 最短匹配
16.2.8 ()与重复
16.2.9 选择
16.3 使用quote方法的正则表达式
16.4 正则表达式的选项
16.5 捕获
16.6 使用正则表达式的方法
16.6.1 sub方法与gsub方法
16.6.2 scan方法
16.7 正则表达式的例子
第17章 IO类
17.1 输入/输出的种类
17.1.1 标准输入/输出
17.1.2 文件输入/输出
17.2 基本的输入/输出操作
17.2.1 输入操作
17.2.2 输出操作
17.3 文件指针
17.4 二进制模式与文本模式
17.5 缓冲
17.6 与命令进行交互
17.7 open-uri库
17.8 stringio库
第18章 File类与Dir类
18.1 File类
18.1.1 变更文件名
18.1.2 复制文件
18.1.3 删除文件
18.2 目录的操作
18.2.1 目录内容的读取
18.2.2 目录的创建与删除
18.3 文件与目录的属性
18.4 文件名的操作
18.5 与文件操作相关的库
18.5.1 find库
18.5.2 tempfile库
18.5.3 fileutils库
第19章 Encoding类
19.1 Ruby的编码与字符串
19.2 脚本编码与魔法注释
19.3 Encoding类
19.4 正则表达式与编码
19.5 IO类与编码
19.5.1 外部编码与内部编码
19.5.2 编码的设定
19.5.3 编码的作用
第20章 Time类与Date类
20.1 Time类与Date类
20.2 获取时间
20.3 计算时间
20.4 时间的格式
20.5 本地时间
20.6 从字符串中获取时间
20.7 获取日期
20.8 计算日期
20.9 日期的格式
20.10 从字符串中获取日期
20.11 Time与Date的互相转换
第21章 Proc类
21.1 Proc类是什么
21.1.1 lambda表达式
21.1.2 通过Proc参数接收块
21.1.3 to_proc方法
21.2 Proc的特征
21.3 Proc类的实例方法
第4部分 动手制作工具
第22章 文本处理
22.1 准备文本
22.1.1 下载文件
22.1.2 获取正文
22.1.3 删除标签
22.2 扩展simple_grep.rb:显示次数
22.3 扩展simple_grep.rb:显示匹配的部分
22.3.1 突出匹配到的位置
22.3.2 显示前后各10个字符
22.3.3 让前后的字符数可变更
第23章 检索邮政编码
23.1 获取邮政编码
23.2 csv库
23.3 sqlite3库
23.4 插入数据
23.5 检索数据
23.6 小结
附录
附录A 搭建Ruby运行环境
A.1 安装Ruby
A.2 在Windows下安装
A.2.1 开始安装
A.2.2 同意软件使用许可协议
A.2.3 确认安装路径以及选项
A.2.4 安装进度
A.2.5 安装完成
A.2.6 启动控制台
A.3 在Mac OS X下安装
A.4 在Unix下安装
A.4.1 从源代码编译
A.4.2 使用二进制软件包
A.4.3 使用Ruby软件包管理工具
A.5 编辑器与IDE
附录B Ruby参考集
B.1 RubyGems
B.2 命令行选项
B.3 预定义变量、常量
B.3.1 预定义变量
B.3.2 预定义常量
B.3.3 伪变量
B.3.4 环境变量
后记
谢辞