《Ruby Programming:向Ruby之父学程序设计(第2版)》是为了让完全没有程序设计经验的读者也能灵活地使用Ruby,因此书中详细地说明了各种知识。从程序所需要的变量、常数、方法、类、控制结构等语法的说明,到类的主要使用方法、简单的应用等,尽可能都浅显地加以解说。您若是自己动手玩过HTML这样的读者,应该就能充分活用《Ruby Programming:向Ruby之父学程序设计(第2版)》的知识了。另外,若您不是初学者,但想要从头开始学习Ruby语言,这《Ruby Programming:向Ruby之父学程序设计(第2版)》也会派上用场。Ruby是为了让程序设计更快乐而开发的程序语言。Ruby具有“彻底面向对象”、“丰富的程序库”、“亲和力高的直观语法形式”等多项特征,但这些特征并不是Ruby的目的,只能说是为了让程序设计更有趣而开发的手段罢了。
希望《Ruby Programming:向Ruby之父学程序设计(第2版)》的读者,都能从使用Ruby的过程中,找到属于自己的“兴趣”与“乐趣”。──若您可以这样灵活运用,那将是《Ruby Programming:向Ruby之父学程序设计(第2版)》作者无上的荣幸了。
第1部分 开始使用Ruby
第1章 与Ruby的第一次接触
1.1 执行Ruby
1.1.1 Windows环境
1.1.2 UNIX环境
1.1.3 MacOS X环境
1.1.4 确认执行正常
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方法
1.14 定义方法
1.15 读入其他文件
第2章 方便的对象
2.1 数组
2.1.1 建立数组
2.1.2 从数组中取得对象
2.1.3 将对象存进数组里
2.1.4 数组的内容
2.1.5 数组的大小
2.1.6 逐项处理数组内容
2.2 杂凑(HASH)
2.2.1 建立杂凑
2.2.2 从杂凑获取对象
2.2.3 逐项处理杂凑内容
2.3 正则表达式
第3章 指令设计
3.1 从命令行输入的数据
3.2 读取文件
3.2.1 读入文件内的文本数据并显示
3.2.2 从文件逐行读入数据并显示出来
3.2.3 只显示文件里符合特定样式的几行
第2部分 学习基础
第4章 对象与变量、常数
4.1 对象
4.2 类
4.3 变量
4.4 常数
4.5 保留字
第5章 条件判断
5.1 什么是条件判断
5.2 Ruby的条件
5.2.1 条件与真假值
5.2.2 逻辑运算符
5.3 if语句
5.4 unless语句
5.5 case语句
5.6 if修饰符与unless修饰符
5.7 总结
第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.11.3 redo
6.12 总结
第7章 方法
7.1 调用方法
7.2 方法的分类
7.2.1 实例方法
7.2.2 类方法
7.2.3 函数性的方法
7.3 定义方法
第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 类方法
8.2.6 常数
8.2.7 类变量
8.2.8 扩充类
8.2.9 使用继承
8.2.10 限制方法的调用
8.3 什么是面向对象
8.3.1 数据与处理程序
8.3.2 “数据与处理程序”方式的问题
8.3.3 对象
8.3.4 面向对象的特征
8.3.5 Duck Typing(行为决定类型)
8.4 什么是模块
8.5 自己定义模块
8.5.1 常数
8.5.2 定义方法
第9章 错误处理与例外
9.1 关于错误处理
9.2 例外处理
9.3 例外处理的写法
9.4 善后处理
9.5 重新执行
9.6 rescue修饰符
9.7 例外处理语法的补充
9.8 指定要捕捉的例外
9.9 例外类
9.10 引发例外
9.11 catch与throw
第3部分 使用类
第10章 数值(Numeric)类
10.1 Numeric的类架构
10.2 数值常数
10.3 算术运算
10.3.1 除法
10.3.2 Math模块
10.4 数值类型的转换
10.5 位运算
10.6 数数
练习
第11章 数组(Array)类
11.1 复习数组
11.2 建立数组
11.2.1 使用Array.new
11.2.2 使用%w
11.2.3 使用to_a方法
11.2.4 使用字符串的split方法
11.3 索引的用法
11.3.1 获取元素
11.3.2 改写元素
11.3.3 插入元素
11.3.4 以多个索引建立新数组
11.4 不使用索引操作数组
11.5 作为集合的数组
11.6 作为“列表”的数组
11.7 数组的主要方法
11.7.1 将数据加入数组中
11.7.2 从数组中删除数据
11.7.3 换掉数组的元素
11.8 数组与迭代器
11.9 处理数组的每个元素
11.9.1 使用循环配合索引
11.9.2 使用each方法逐项获取元素
11.9.3 使用破坏性的方法反复操作
11.9.4 使用其他迭代器
11.9.5 自己设计迭代器
11.10 数组的元素
11.10.1 示例:使用简单的矩阵
11.10.2 小心初始化
11.11 并行处理多个数组的值
练习
第12章 字符串(String)类
12.1 建立字符串
12.1.1 使用%Q、%q
12.1.2 使用嵌入文档
12.1.3 使用sprintf方法
12.2 获取字符串长度
12.3 分割字符串
12.4 连接字符串
12.5 字符串的索引
12.6 比较字符串
12.7 处理换行字符
12.8 字符串的查找与取代
12.8.1 查找字符串
12.8.2 字符串的取代
12.9 字符串与数组共同的方法
12.9.1 与索引操作有关的方法
12.9.2 Enumerable模块相关的方法
12.9.3 连接、逆转相关的方法
12.10 其他方法
练习
第13章 杂凑(Hash)类
13.1 杂凑的复习
13.2 建立杂凑的方法
13.2.1 使用{}
13.2.2 使用Hash.new
13.3 获取、设定杂凑的值
13.3.1 直接取出所有键或值
13.3.2 杂凑的默认值
13.4 查询杂凑里是否存在某个键或值
13.5 查询杂凑的大小
13.6 删除键与值
13.7 初始化杂凑
13.8 应用示例:计算单字数量
练习
第14章 正则表达式
第14章 (Regexp)类
14.1 关于正则表达式
14.1.1 正则表达式的写法与用途
14.1.2 建立正则表达式对象
14.2 正则表达式的样式与匹配
14.2.1 以一般文字进行匹配
14.2.2 匹配行首与行尾
14.2.3 指定想要匹配成功的文字范围
14.2.4 匹配任意字符
14.2.5 使用反斜线的样式
14.2.6 反复出现
14.2.7 最短匹配
14.2.8 “()”与反复
14.2.9 多选
14.3 使用quote方法的正则表达式
14.4 正则表达式的选项
14.5 回溯参照
14.6 使用正则表达式的方法
14.6.1 sub方法与gsub方法
14.6.2 scan方法
14.7 正则表达式的示例
练习
第15章 IO类
15.1 输入/输出的种类
15.1.1 标准输入/输出
15.1.2 文件输入/输出
15.1.3 open-uri.rb
15.1.4 stringio.rb
15.2 基本的输入/输出操作
15.2.1 输入操作
15.2.2 输出操作
15.3 文件指针
15.4 二进制模式与文本模式
15.5 缓冲处理
15.6 与指令交换数据
练习
第16章 File类与Dir类
16.1 File类
16.1.1 更改文件名
16.1.2 复制文件
16.1.3 删除文件
16.2 目录的操作
16.2.1 读取目录内容
16.2.2 Dir.glob
16.2.3 建立目录与删除
16.3 文件与目录的属性
16.3.1 获取属性
16.3.2 FileTest模块
16.4 文件名的操作
16.5 与文件操作相关的程序库
16.5.1 find.rb
16.5.2 tempfile.rb
16.5.3 fileutils.rb
练习
第17章 Time类与Date类
17.1 Time类、Date类、
17.1 DateTime类
17.2 获取Time对象
17.3 计算时间
17.4 时间的格式
17.5 本地时间
17.6 解析字符串
17.7 使用DateTime类
17.8 DateTime类与Time类的差异
17.8.1 DateTime类表示一天的方式
17.8.2 时差处理的差异
17.9 使用Date类求日期
17.10 计算日期
17.11 日期格式
17.12 解析字符串
练习
第4部分 灵活使用Ruby
第18章 Ruby的其他补充知识
18.1 命令行选项
18.1.1 调试、运行确认
18.1.2 获取信息
18.1.3 单行程序(one-liner)
18.1.4 安全性检查
18.1.5 其他
18.2 环境变量
18.3 常数
18.4 内建变量
18.5 内建常数
18.6 多重赋值
18.7 BEGIN{}与END{}
18.8 alias
18.9 undef
18.10 虚拟变量
第19章 运算符
19.1 逻辑运算符的应用
19.2 条件运算符
19.3 自我赋值
19.4 范围运算符
19.5 运算符的优先次序
19.6 定义运算符
19.6.1 二元运算符
19.6.2 单项运算符
19.6.3 数组参照运算符
第20章 迭代器(iterator)
20.1 迭代器与区块调用
20.2 迭代器的基础知识
20.3 各式各样的迭代器
20.3.1 用在数组上
20.3.2 用在杂凑上
20.3.3 用在文件上
20.4 Enumerable模块
20.4.1 each方法
20.4.2 collect方法
20.4.3 sort方法
20.4.4 sort_by方法
20.5 实现迭代器
第21章 Mix-in
21.1 include方法
21.2 Comparable模块
21.3 Enumerable模块
21.4 与继承的关系
21.5 方法的查找规则
第5部分 制作应用
第22章 日志文件解析
22.1 浅谈日志文件访问
22.2 查询访问数
22.3 查询访问日期
22.4 以图表显示访问日期
22.5 只统计特定文件的访问次数
第23章 查找邮政编码
23.1 邮政编码数据库
23.2 读文件
23.3 gdbm程序库
23.4 生成数据
23.5 查找数据
23.6 jzipcode.rb
23.7 执行与使用
23.8 总结
第24章 解析HTML
24.1 关于HTML
24.1.1 元素与标签
24.1.2 注释
24.1.3 字符引用
24.2 建立程序
24.2.1 注释的解析
24.2.2 标签的解析(一)
24.2.3 文字数据的解析
24.2.4 示例
24.2.5 标签的解析(二)
24.3 超链接一览
附录A
《学习正则表达式》从正则表达式的基本概念讲起,到编写完整的sed和Perl脚本,再到转换HTML文件,将这种强大的工具解释得清晰透彻
《阿里巴巴基本动作:管理者必须修炼的24个基本动作》内容简介:收齐日报很难,收到合格的日报更难,用日报管好团队难上加难?招不
人工智能 本书特色 本书是“OHM大学理工系列”之一。书中简明扼要地介绍了基于搜索的问题求解、知识表示和推理、机器学习、模糊理论-精神网络-遗传算法、模糊识别,...
本书从实用的角度出发,系统地介绍了Protel2004的基本操作环境,重点介绍了原理图的设计、PCB的设计和元件库的设计,同时对电路仿
《深入分析JavaWeb技术内幕》围绕JavaWeb相关技术从三方面全面深入地进行阐述。首先介绍前端知识,主要介绍JavaWeb开发中涉及的一
《UMTS中的WCDMA-HSPA演进及LTE》(原书第4版)主要介绍了第三代移动通信系统中的WCDMA无线传输技术,重点是WCDMA的技术特点和演进
《文学概论》内容简介:本书是老舍先生罕见的文学理论著作,既是他创作实践的感悟,也是他学习的总结。在书中,老舍先生纵论中国历
《当代生命科学中的政治纠缠》内容简介:本书以2005年韩国黄禹锡干细胞事件为主轴,辅以历史与当下生命科学技术案例,展开比较研究
计算机网络系统方法(原书第3版),ISBN:9787111155140,作者:(美)LarryL.Peterson,(美)BruceS.Davie著;叶新铭,贾...
《Spring源码深度解析》从核心实现和企业应用两个方面,由浅入深、由易到难地对Spring源码展开了系统的讲解,包括Spring的设计理
本书简要介绍了通信系统的基本理论,详细介绍了MATLAB通信工具箱的主要内容和使用方法,其中包括与通信系统有关的MATLAB通信工具
GradyBooch、JamesRumbaugh和IvarJacobson是UML的创始人,均为软件工程界的权威,除了著有多部软件工程方面的著作之外,在对象技
《孙思邈(中华先贤人物故事汇)【中宣部2022年主题出版重点出版物】》内容简介:孙思邈是我国历史上著名的医学家和药物学家,被后
《物联网系统架构设计与边缘计算(原书第2版)》内容简介:本书涵盖从物联网传感器到云计算的整个物联网解决方案谱系。首先研究现代
《构建跨平台app:jquerymobile移动应用实战》分为4篇,第一篇是移动开发入门篇,介绍了jquerymobile、html5和移动开发的一些基础
《中国历史的教训:精装版》内容简介:本书是一本以人物故事为主线、以廉政思想为内核的中国历史通俗读物,也是一本由纪检监察干部
ASP.NET不仅是微软最重要的战略性产品之一,而且还是Web开发领域最具创新性、最成功的技术之一。它可完全利用.NET架构的强大、高
管理运筹学和MATLAB软件应用 内容简介 本书从现代管理科学研究和实际应用的角度出发,将运筹学的原理、建模方法、应用事例和MATLAB软件计算有机地结合起来,...
《Moldflow模流分析与工程应用》内容简介:本书结合塑料注射成型工艺过程、模具设计要点和模拟基础理论,以实际应用为主线介绍Mold
《心智模型的阐释:结构、过程与影响》主要内容:共享心智模型和目前企业流行的理念——学习型组织有着密切的关系。作为创建学习型