章节目录
第1部分 Ruby初体验 第1章 Ruby初探 2 1.1 Ruby的运行方法 3 1.1.1 ruby命令的执行方法 3 1.1.2 irb命令的执行方法 4 1.2 程序解说 5 1.2.1 对象 5 1.2.2 方法 5 1.3 字符串 6 1.3.1 换行符与\ 6 1.3.2 ' '与" " 7 1.4 方法的调用 7 1.5 puts方法 8 1.6 p方法 8 1.7 中文的输出 9 1.8 数值表示与计算 11 1.8.1 数值 11 1.8.2 四则运算 11 1.8.3 数学相关的函数 12 1.9 变量 13 print方法和变量 14 1.10 注释 14 1.11 控制语句 15 print方法和变量 16 1.12 条件判断:if~then~end 16 1.13 循环 18 1.13.1 while语句 18 1.13.2 times方法 18 第2章 便利的对象 19 2.1 数组 20 2.1.1 数组的创建 20 2.1.2 数组对象 20 2.1.3 从数组中抽取对象 20 2.1.4 将对象保存到数组中 21 2.1.5 数组的元素 22 2.1.6 数组的大小 22 2.1.7 数组的循环 23 2.2 散列 24 2.2.1 什么是符号 24 2.2.2 散列的创建 25 2.2.3 散列的使用 25 2.2.4 散列的循环 25 2.3 正则表达式 26 模式与匹配 26 第3章 创建命令 29 3.1 命令行的输入数据 29 3.2 文件的读取 30 3.2.1 从文件中读取内容并输出 31 3.2.2 从文件中逐行读取内容并输出 32 3.2.3 从文件中读取指定模式的内容并输出 33 3.3 方法的定义 34 3.4 其他文件的引用 34 第2部分 Ruby的基础 第4章 对象、变量和常量 38 4.1 对象 38 4.2 类 39 4.3 变量 39 局部变量与全局变量 40 4.4 常量 42 4.5 保留字 42 4.6 多重赋值 43 4.6.1 合并执行多个赋值操作 43 4.6.2 置换变量的值 43 4.6.3 获取数组的元素 44 4.6.4 获取嵌套数组的元素 44 第5章 条件判断 46 5.1 什么是条件判断 46 5.2 Ruby中的条件 47 条件与真假值 47 5.3 逻辑运算符 48 5.4 if语句 49 5.5 unless语句 50 5.6 case语句 51 5.7 if修饰符与unless修饰符 54 5.8 总结 54 第6章 循环 57 6.1 循环的基础 57 6.2 循环时的注意事项 58 6.3 实现循环的方法 58 6.4 times方法 58 6.5 for语句 60 6.6 普通的for语句 62 6.7 while语句 62 6.8 until语句 64 6.9 each方法 65 6.10 loop方法 66 6.11 循环控制 66 6.11.1 break 68 6.11.2 next 69 6.11.3 redo 70 6.12 总结 71 第7章 方法 73 7.1 方法的调用 73 7.1.1 简单的方法调用 73 7.1.2 带块的方法调用 74 7.1.3 运算符形式的方法调用 74 7.2 方法的分类 75 7.2.1 实例方法 75 7.2.2 类方法 76 7.2.3 函数式方法 76 7.3 方法的定义 77 7.3.1 方法的返回值 78 7.3.2 定义带块的方法 79 7.3.3 参数个数不确定的方法 80 7.3.4 关键字参数 81 7.3.5 关于方法调用的一些补充 82 第8章 类和模块 87 8.1 类是什么 87 8.1.1 类和实例 87 8.1.2 继承 89 8.2 类的创建 90 8.2.1 class关键字 91 8.2.2 initialize方法 91 8.2.3 实例变量与实例方法 92 8.2.4 存取器 93 8.2.5 特殊变量self 94 8.2.6 类方法 95 8.2.7 常量 96 8.2.8 类变量 96 8.2.9 限制方法的调用 97 8.3 扩展类 99 8.3.1 在原有类的基础上添加方法 99 8.3.2 继承 99 8.4 alias与undef 101 8.4.1 alias 101 8.4.2 undef 102 8.5 模块是什么 103 8.6 模块的使用方法 103 8.6.1 提供命名空间 103 8.6.2 利用Mix-in扩展功能 104 8.7 创建模块 104 8.7.1 常量 105 8.7.2 方法的定义 105 8.8 Mix-in 106 8.8.1 查找方法的规则 107 8.8.2 extend方法 109 8.8.3 类与Mix-in 110 8.9 面向对象程序设计 111 8.9.1 对象是什么 111 8.9.2 面向对象的特征 112 8.9.3 鸭子类型 113 8.9.4 面向对象的例子 114 第9章 运算符 117 9.1 赋值运算符 117 9.2 逻辑运算符的应用 118 9.3 条件运算符 120 9.4 范围运算符 120 9.5 运算符的优先级 121 9.6 定义运算符 122 9.6.1 二元运算符 122 9.6.2 一元运算符 124 9.6.3 下标方法 125 第10章 错误处理与异常 126 10.1 关于错误处理 126 10.2 异常处理 127 10.3 异常处理的写法 128 10.4 后处理 131 10.5 重试 131 10.6 rescue修饰符 132 10.7 异常处理语法的补充 132 10.8 指定需要捕捉的异常 133 10.9 异常类 134 10.10 主动抛出异常 135 第11章 块 136 11.1 块是什么 136 11.2 块的使用方法 137 11.2.1 循环 137 11.2.2 隐藏常规处理 138 11.2.3 替换部分算法 139 11.3 定义带块的方法 142 11.3.1 执行块 142 11.3.2 传递块参数,获取块的值 142 11.3.3 控制块的执行 144 11.3.4 将块封装为对象 145 11.4 局部变量与块变量 147 第3部分 Ruby的类 第12章 数值类 150 12.1 数值类的构成 150 12.2 数值的字面量 152 12.3 算数运算 153 除法 153 12.4 Math模块 155 12.5 数值类型转换 156 12.6 位运算 157 12.7 随机数 159 12.8 计数 160 12.9 近似值误差 161 第13章 数组类 164 13.1 复习数组 165 13.2 数组的创建方法 165 13.2.1 使用Array.new 165 13.2.2 使用%w与%i 166 13.2.3 使用to_a方法 166 13.2.4 使用字符串的split方法 166 13.3 索引的使用方法 167 13.3.1 获取元素 167 13.3.2 元素赋值 169 13.3.3 插入元素 170 13.3.4 通过多个索引创建数组 171 13.4 作为集合的数组 171 “|”与“+”的不同点 173 13.5 作为列的数组 173 13.6 主要的数组方法 175 13.6.1 为数组添加元素 175 13.6.2 从数组中删除元素 177 13.6.3 替换数组元素 179 13.7 数组与迭代器 180 13.8 处理数组中的元素 181 13.8.1 使用循环与索引 181 13.8.2 使用each方法逐个获取元素 181 13.8.3 使用具有破坏性的方法实现循环 182 13.8.4 使用其他迭代器 182 13.8.5 创建专用的迭代器 182 13.9 数组的元素 183 13.9.1 使用简单的矩阵 183 13.9.2 初始化时的注意事项 183 13.10 同时访问多个数组 185 第14章 字符串类 188 14.1 字符串的创建 189 14.1.1 使用%Q与%q 190 14.1.2 使用Here Document 190 14.1.3 使用sprintf方法 191 14.1.4 使用`` 191 14.2 获取字符串的长度 193 14.3 字符串的索引 194 14.4 字符串的连接 194 14.5 字符串的比较 195 字符串的大小比较 196 14.6 字符串的分割 198 14.7 换行符的使用方法 198 14.8 字符串的检索与置换 199 14.8.1 字符串的检索 199 14.8.2 字符串的置换 200 14.9 字符串与数组的共同方法 200 14.9.1 与索引操作相关的方法 200 14.9.2 返回Enumerator对象的方法 201 14.9.3 与连接、反转(reverse)相关的方法 202 14.10 其他方法 203 14.11 日语字符编码的转换 204 14.11.1 encode方法 204 14.11.2 nkf库 204 第15章 散列类 208 15.1 复习散列 208 15.2 散列的创建 209 15.2.1 使用{} 209 15.2.2 使用Hash.new 209 15.3 值的获取与设定 210 15.3.1 一次性获取所有的键、值 211 15.3.2 散列的默认值 211 15.4 查看指定对象是否为散列的键或值 212 15.5 查看散列的大小 213 15.6 删除键值 213 15.7 初始化散列 214 处理有两个键的散列 215 15.8 应用示例:计算单词数量 216 第16章 正则表达式类 219 16.1 关于正则表达式 219 16.1.1 正则表达式的写法与用法 219 16.1.2 正则表达式对象的创建方法 220 16.2 正则表达式的模式与匹配 220 16.2.1 匹配普通字符 221 16.2.2 匹配行首与行尾 221 16.2.3 指定匹配字符的范围 222 16.2.4 匹配任意字符 224 16.2.5 使用反斜杠的模式 225 16.2.6 重复 226 16.2.7 最短匹配 228 16.2.8 ()与重复 229 16.2.9 选择 229 16.3 使用quote方法的正则表达式 229 16.4 正则表达式的选项 230 16.5 捕获 231 16.6 使用正则表达式的方法 232 16.6.1 sub方法与gsub方法 232 16.6.2 scan方法 233 16.7 正则表达式的例子 234 第17章 IO类 237 17.1 输入/输出的种类 237 17.1.1 标准输入/输出 237 17.1.2 文件输入/输出 239 17.2 基本的输入/输出操作 240 17.2.1 输入操作 240 17.2.2 输出操作 243 17.3 文件指针 244 17.4 二进制模式与文本模式 245 17.5 缓冲 246 17.6 与命令进行交互 248 17.7 open-uri库 249 17.8 stringio库 250 第18章 File类与Dir类 252 18.1 File类 252 18.1.1 变更文件名 253 18.1.2 复制文件 253 18.1.3 删除文件 254 18.2 目录的操作 254 18.2.1 目录内容的读取 255 18.2.2 目录的创建与删除 258 18.3 文件与目录的属性 259 FileTest模块 261 18.4 文件名的操作 262 18.5 与操作文件相关的库 263 18.5.1 find库 263 18.5.2 tempfile库 264 18.5.3 fileutils库 265 第19章 Encoding类 268 19.1 Ruby的编码与字符串 268 19.2 脚本编码与魔法注释 269 19.3 Encoding类 270 Encoding类的方法 271 19.4 正则表达式与编码 274 19.5 IO类与编码 274 19.5.1 外部编码与内部编码 274 19.5.2 编码的设定 275 19.5.3 编码的作用 276 第20章 Time类与Date类 280 20.1 Time类与Date类 280 20.2 时间的获取 281 20.3 时间的计算 282 20.4 时间的格式 282 20.5 本地时间 284 20.6 从字符串中获取时间 284 20.7 日期的获取 285 20.8 日期的运算 286 20.9 日期的格式 286 20.10 从字符串中获取日期 287 第21章 Proc类 288 21.1 Proc类是什么 288 21.1.1 lambda 289 21.1.2 通过Proc参数接收块 291 21.1.3 to_proc方法 292 21.2 Proc的特征 292 21.3 Proc类的实例方法 293 第4部分 动手制作工具 第22章 文本处理 298 22.1 准备文本 298 22.1.1 下载文件 298 22.1.2 获取正文 299 22.1.3 删除标签 300 22.2 扩展simple_grep.rb:显示次数 302 计算匹配行 302 22.3 扩展simple_grep.rb:显示匹配的部分 304 22.3.1 突出匹配到的位置 304 22.3.2 显示前后各10个字符 305 22.3.3 让前后的字符数可变更 306 第23章 检索邮政编码 308 23.1 获取邮政编码 308 23.2 检索邮政编码 309 23.3 sqlite3库 309 23.4 插入数据 311 23.5 检索数据 313 23.6 总结 314 附录 附录A Ruby运行环境的构建 316 A.1 Ruby的安装 316 A.2 在Windows下安装 316 A.2.1 开始安装 317 A.2.2 同意软件使用许可协议 317 A.2.3 确认安装路径以及选项 317 A.2.4 安装进度 318 A.2.5 安装完成 318 A.2.6 启动控制台 319 A.3 在Mac OS X下安装 320 通过MacPorts安装 321 A.4 在Unix下安装 322 A.4.1 从源代码编译 322 A.4.2 使用二进制软件包 323 A.4.3 使用Ruby软件包管理工具 323 A.5 编辑器与IDE 323 没有好用的编辑器就不能编写Ruby程序吗 324 附录B Ruby参考集 325 B.1 RubyGems 325 gem命令 325 B.2 Ruby参考手册 327 B.2.1 Web上的资源 327 B.2.2 ri命令 328 B.2.3 阅读参考手册的技巧 328 B.3 命令行选项 329 B.4 预定义变量、常量 330 B.4.1 预定义变量 330 B.4.2 预定义常量 331 B.4.3 伪变量 332 B.4.4 环境变量 332 B.5 错误信息 332 B.5.1 syntax error 333 B.5.2 NameError/NoMethodError 333 B.5.3 ArgumentError 333 B.5.4 TypeError 334 B.5.5 LoadError 334 B.5.6 [BUG] 334 后记 335 谢辞 336
内容简介
本书为日本公认的最好的Ruby入门教程。松本行弘亲自审校并作序推荐。本书支持最新的Ruby 2.0,也附带讲解了可运行于1.9版本的代码,事无巨细且通俗易懂地讲解了编写程序时所需要的变量、常量、方法、类、流程控制等的语法,以及主要类的使用方法和简单的应用,让没有编程经验的读者也能轻松掌握Ruby,找到属于自己的快乐编程方式,做到融会贯通并灵活运用到实际工作中。 本书适合Ruby初学者学习参考,有一定Ruby编程基础的读者若想再回顾一下Ruby的各知识点,本书也能提供不少帮助。
下载说明
1、Ruby基础教程是作者高桥征义,后藤裕藏创作的原创作品,下载链接均为网友上传的网盘链接!
2、相识电子书提供优质免费的txt、pdf等下载链接,所有电子书均为完整版!
下载链接
热门评论
-
张三太爷的评论看片结束:《变形金刚》,I,II,III。很大一部分时间位于 Android 5.1.0 源码编译过程中,除此外,还学会了用 dd 创建并用 mkswap 初始化一个交换文件,然后用 swapon 使之生效;看了点《Ruby 基础教程》,主要集中于“方法”和“类和模块”这两章。
-
XH与他的阿宅朋友们的评论ruby基础教程出电子版了,之前购买过纸质书送的兑换码现在1折可以买电子版 (via Twitter 网页链接
-
图灵社区的评论#电子书新发布#《Ruby基础教程(第4版)》网页链接 “快乐编程”是本书的主旨,也是 Ruby 令人着迷的原因之一。本书继承了日语技术类书籍的优良传统,采用了大量图、表、例子,讲解通俗易懂,带领着读者逐步进入 Ruby 的程序世界,使大家沉浸在编程的乐趣之中。
-
bnuz信院资料室的评论《Ruby基础教程》 高桥征义著,本书支持最新的Ruby2.0,也附带讲解了可运行于1.9版本的代码,事无巨细且通俗易懂地讲解了编写程序时所需要的变量、常量、方法、类、流程控制等的语法,以及主要类的使用方法和简单的应用,让没有编程经验的读者也能轻松掌握Ruby,做到融会贯通并灵活运用到实际工作中。
-
陈冬明与贝格伯格的评论@图灵教育 ruby基础教程第4版 中94页上方的表8.1 存取器的定义中的第三个,应该是attr_accessor,而不是attr_reader
-
WaitingAlone78的评论我在互动出版网评论了《Ruby基础教程(第4版)》,“ruby语言的特点:完全面向对象,在Ruby语言中,任何东西都是对象,包括其他语言中的基本数据类型,比如整数变量没有类型,Ruby的变量可以保存任何类型的数据。任何东西都有值不管是数学或者逻辑表达式还是一个语句,都会有值。r 网页链接
-
被玩坏的那月酱的评论花费了两天时间终于把《Ruby基础教程 第4版》看完了,这个周末还不算白过。
-
新浪云的评论送5本《Ruby基础教程(第4版)》啦!一本非常好的Ruby入门教程!截止9月24日17时,转发本围脖即有机会得到。 感谢@图灵教育 赞助图书。(#新浪云计算开发者大赛#正在进行中!报名参赛:Sina App E... 基于SAE平台开发的微信应用都可提交参赛哦!iPhone5S、机械键盘、SAE百万云豆虚位以待!)
-
2gua的评论「Ruby - 红宝石奥义」《Ruby基础教程(第4版)》终于拿到手了,等了太久。Ruby一直是我最喜欢的动态语言(也是有之一的),特地赞誉一下Ruby及本书[喵喵] 网页链接
-
2gua的评论《PHP编程实战》图灵社区 : 图书 ... 终于要在9月份出来了,《Ruby基础教程(第4版)》网页链接 也在九月出来。一本PHP,再加一本Ruby,九月的两个语言哥俩好了......左手寒冰掌、右手火焰刀,来体验一下寒热交侵的威力吧。[去旅行]
-
2gua的评论《Ruby基础教程(第4版)》估计还要1-2周时间,也忒久了点吧? unless 书出版了? puts "先看看样章吧:网页链接" end [互相膜拜]
-
袁龙飞的评论准备放弃shell去做复杂,调试很难,改学习ruby了,已经入手《Ruby基础教程》,好好学习,天天向上。[耶]