Ruby基础教程第4版

所需积分/C币:12 2017-05-30 11:30:16 11.12MB PDF
收藏 收藏
举报

Ruby入门,原版重印27次!松本行弘亲自审校并作推荐序!日本Ruby协会创始人兼会长倾情力作! 内容简介
译者序 曾经有同事问我,为什么这么喜欢Ruby?我的回答是,因为Ruby非常有趣,用Ruby写程序是一件快乐的事情。对方满脸困惑,似乎在质疑—写程序 也能让人感到快乐?的确,现在不少人认为编程是一件又苫又累的差事。代码搬运工、码农等大家的自嘲语也很难让人把编程与快乐联系在一起。回想当初 刚学习编程的时候,我们曾因为实现了某个算法、某个功能而感到兴奋,而工作后却被项目进度、加班等压得喘不过气来,似乎已经忘记了编程原木是一件 令人快乐的事情。 快乐编程"是本书的主旨,也是Ruy令人着迷的原因之一。本书继承了日语技术类书籍的优良传统,采用了大量图、表、例子,讲解通俗易懂。从编程基 础的数据类型、控制语句,到面向对象编程、鸭子类型、正则表达式等高级编程技巧,带领着读者逐步进入Ruby的程序世界,使大家沉浸在编程的乐趣之 中。而对于久经沙场旳“老鸟们,Ruby那如诗篇一样优雅的语法、各种魇术股的语法糖,以及能把我们从枯爍无味的重复劳动中解放出来的丰富强大的类 库,都一定都能唤起大家的“集体回忆”,重拾已经失去的编程乐趣。 2007年接触Ruby后,我就喜欢上了这个“小家伙”。偶然一次机会,我从 Ruby China社区得知图灵公司正在寻找这本书的译者。非常幸运,我得到了这个 宝贵的机会。 在此非常感谢图灵公司以及 Ruby China社区,也非常感谢翻译过程中图灵公司各位编辑给予的帮助 这是我第一次译书,其间所耗费的时间与精力远远超出了当初的预期。翻译期间,我牺甡了很多与家人共处的时间,在此深深感谢家人们的谅解、关心与支 持,同时也非常感谢朋友们、同事们在这段日子里给我的鼓励与支持 参与本书的翻译,是我人生中一次奇妙的经历。记得以前我曾经对计算机硬件非常着迷,经常阅读硬件杂志。记得当时有一本计算机硬件入门杂志,整本都 是采用彩色铜版纸印刷,图文并茂,手把手地教读者装配、使用计算机。不过慢慢地,有读者抱怨内容太浅显,希望作者能写点高深的内容。当时杂志编辑 的一段回复,到现在我还记忆犹新,大意是“我们的任务就是迎接更多的新朋友,同时让更多的老朋友抛弃我们,当你觉得我们已经无法满足你的求知欲时, 那么恭喜你,你已经毕业了,我们的任务也完成了”。这也是我此刻的心情。 最后,预祝大家通过本书都能找到属于自己的Ruby快乐编程之道 何文斯 2014年5月4日,写于广州 前言 乐在其中的编程语言 与计算机程序“交流”的方式有两种。第一种方式是使用程序,另外一种是编写程序。 然而,编写程序的人相对要少,大部分人都是使用程序而已。这个有点接近“读文章的人"与“写文章的人"的比例。读小说、散文、纪实文学等的人很多,但写 小说、纪实文学的人数量上就远比读者少。 这里说的“文章”不仅仅是指商业出版物,还包括个人网站。有很多人几乎每天都更新博客,有的是与身边的人分享有趣的事情,有的是提供某些有用的信 息。虽然可能只是一些徽不足道的信息,但还是会有读者乐于阅读,这类读者就是“用户”,因此博客也可以说是一种“供读者阅读的文章”。 大家基于各种目的创建了这类网站,其中不少人是因为很享受自己编写内容的过程。以个人网站为例,单纯追求创作乐趣的人可能会更多。 编程不也是如此吗?也就是说,并不仅仅是为了某种目的而编程,而是囚为编程时乐在其中 编程的乐罳并非单指程序内容,使用的编程语言不同,所获得的乐趣也不一样。像这样,让编程本身变得有趣的编程语言真的存在吗? 存在。Ruby就是其中一种 Ruby是一种旨在使大家编程时能乐在其中的编程语言。完全面向对象,有丰富的类库,直观、人性化的语法等都是Ruby的特征,但这些并不是Ruby的目 的,只是快乐编程的手段。 在程序世界里,有着种类繁多的语言。这些语言诞生的缘由多种多样,有的是为了编写运行速度快的程序,有的是为了可以在短时间内编写程序,有的是为 了让程序只需编写一次就可以在仟何环境中运行,有的是为了使小孩也能进行简单编程,等等。但是,似乎并没有哪个语言积极地宣称其目的是为了快乐编 程。这可能是由于各个语言的没计者,并没有认真考虑过让任何人都可以编程 当然,使大家编程时乐在其中的语言,肯定是一种简单易掌握的语言,复杂的语言不可能让人体会到快乐。同时,这门语言又必须是一个功能强大的语言 芹非如此,实际编写程序时会非常费劲。毋庯置言,Ruby就是这样一种简单易掌握,并且功能强大的编程语言。 为了让零编程经验的读者轻松掌握Ruby,本书会巨细无遗地介绍Ruby。从编写程序时所需要的变量、常量、方法、类、流程控尙等的语法说明,到主要类 的使用方法和简单的应用,都会尽量用通俗易懂的方式来说明。对于从未接触过计算机的读者来说,也许这有点难,但是那些稍微懂点HTML的读者很容易 就能做到融会贯通。另外,对于那些并非初学者的读者来说,若想雨回顾一下Ruby的各知识点,本书也能提供不少帮助 希望各位读者能通过本书,熟练掌握Ruby,找到属于自己的快乐而有趣的编程方式,并灵活运用到实际中,笔者将不胜荣幸 欢迎来到Ruby的世界! 高桥征义|后藤裕藏 本书的读者对象 01关于Ruby 在开始编程之前,让我们先了解一下什么是Ruby。 ·Ruby是脚本语言 用∂或者Jaa语言编写的程序,在运行前需要执行编译这一步骤,把源码翮译成计算机可以理解的机器码。而用脚本语言编写的源码并不霱要编译, 直接运行程序便可 也就是说,在使用脚本语言时,开发流程会从 源码编写→源码编译→程序运行 变为 源码编写→程序运行 因此,与需要编译的语言相比,Ruby更能让大家轻松享受到编程之趣。 Ruby是面向对象的语言 Ruby是一群热爱面向对象编程的程序员,为了实现最优秀的面向对象语言而设计、开发的一门语言。它是完全面向对象的,所思考的东西都可以直接 通过代码表达出来。1同时,Ruby也具有继承、Mxin等面向对象话言的必备特性。 另外,Ruby不仅提供了丰富的标准类库,还具有对应各种异常的错误处理机制、自动释放内存的垃圾回收机制等提高编程效率的特性。 Ruby是跨平台的语言 Ruby能在 Mac os x、 Linux、 FreeBSD、 Solaris等类Unⅸ操作系统以及 Windows操作系统等平台上运行。它的人部分脚木无需修改即可在各个不同 的平台环境下运行。 Ruby是开源软件 Ruby诞生时,松本行弘先生就公开了源码,使之成为开源软件(白由软件, Free Software)。任何人都可以随意获取Ruby,并白由使用。白1995 年松本行弘先生在互联网上发布Ruby以来,Ruby得到了来自各方的广泛支持,并一直活跃至今 1与面向过程的编程方法相比,我们一般认为面向对象的编程方法比较符合人的思维习惯 译者注 02本书的读者对象 本书是一本入门级图书,面向具备一定计算机知识但没有编程经验的读者,旨在帮助他们掌握Ruby编程知识。本书尽量以无需具备专业知识也能读懂的方 式向大家介绍Ruby,但省略了“启动/关闭计算机" Shift键的使用方法”等基础知识的说明。本书面向这样的读者 具备操作文件和执行命令等基础的计算机知识 ·可使用编辑器创建文本文件 ·计划学习编程 03本书的构成 本书采用循序渐进,遝步深入的写作方式,对于有Ruby基础的读者来说,前半部分或许有些沉闷。建议已经掌握Ruby语法等基础知识的读者,快速浏览 前两部分,从第3部分开始仔细阅读。 ·第1部分Ruby初体验 利用简单的Ruby小程序,介绍计算机程序的基本构成 ·第2部分Ruby的基础 介绍Ruby语法、规则等Ruby编程基础知识,以及类、模块等面向对象編程的思考方法和术语。 ·第3部分Ruby的类 要编写程序,只懂语法还远远不够。Ruby之所以能使大家快乐编程,主要缘于Ruby精心设计的标准类库。 在木部分,我们会列举多个Ruby的基础类,介绍其功能和使用方法。 第4部分动于制作工具 在本部分,我们将进行一次总复习,介绍一些稍微复杂点的Ruby程序,让大家尝试一下如何用Ruby编写实际的程序 ·附录 A Ruby运行环境的构建 介绍各个平台的Ruby安装方法 附录B参考 介绍使用Ruby时所需的知识以及各相关信息 04Ruby的运行环境 木书内容适用于Ruby20.0版木,并兼容Ruby1.9系列版木。适用的操作系统为 Windows718和 Mac Os X, Linux等常见类Umⅸ×操作系统 在继续阅读本书前,请读者按照附录A.1节的说明,安装Ruby运行坏境。 第1部分Ruby初体验 让我们先从简单的程序入于,从整体上了解Ruby的基本概念,并对如何使用Ruby编写程序有个初步印象。 第1章Ruby初探 那么,我们赶快来看一下Ruby能做些什么。 本章会介绍以下内容 ·使用Ruby 了解如何使用Ruby编写并执行程序。 ·使用字符和数值 了解字符和数值是如何输出、计算以及给变量赋值等内容 使用条件判断和循环处理 了解如何通过字符串或数值比较进行条件判断处理,以及如何进行循环处理。 读完本章,大家就能大概掌握用Ruby编写程序的方法了 快乐编程) 1.1Ruby的运行方法 首先,让我们用Ruby编写一个在屏幕上输出字符的小程序 Ruby程序有多种执行方法,其中最常见的方法是使用ruby命令来执行,其次就是使用irb命令,以交互式命令行方式来执行。若只是想执行小程序,使用 irb命令会相对简单一点。 接下来,我们先介绍ruby命令以及ib命令的使用方法 另外,读者如果还没安装Ruby,请参考附录A预先安装好Ruby运行环境 1注本书近用于Ruby2.0或者Ruby1.9。由于 Mac Os x和LnuK系统默认安装的Ruby版本比较旧,因此请读者安装新版本的Ruby 1.1.1ruby命令的执行方法 首先,让我们看看代码清单1.1的程序 代码清单1.1 he lloruby rb print("Hello, Ruby. \n") 注日文Wnoe系统中的\会显示为¥。原则上,本书统一书写为 各位是否有些沮丧呢?一般听到“程序”,我们可能会联想到一长串密码似的东西。但这个程序的代码只有一行,总共才20来个字符。可这的确是一个真真切 切的程序,执行后就可以达到我们预想的目的 请大家打开编器,写入上述程序,将文件名修改为 helloruby. rb,保存文件。rb是Ruby程序的后缀,表示这个文件内容是Ruby程序 备注写代码时会用到编器或者DE,它们的相关内容请参考A5节 接下来让我们启动控制台,执行程序。 备注关于控制台的启动方法,请参考附录A里各操作系统的说明。 启动控制台后,使用cd命令,移动到存放 helloruby. rb的文件夹中。例如,使用 Windows,文件放在C盘的sc文件夹(c:\src),然后执行以下命令, >cd c: \src 接着再执行, 〉 ruby helloruby.rb 执行后,如图1.1所示,会显示“Hell,Ruby."。 Start Command Prompt with Ruby uby2..p451(2814-B2-24)x64 mingw32 山 sers \ kaniiyu>cdc:sc Nsrc ruby helloruby rb e llo. Ruby. :lG> 图1.1执行Ruby 备注如果执行时出错,请参考附录A以及B5节的内容。 1.12rb命令的执行方法 接下来,我们介绍ib命令的执行方法。 与ruby命令一样,irb命令在控制台执行,不过不需要指定程序文件。 执行irb命令后,就会出现以下这样的命令提示符。1 1使用 Ruby Installer for Windows安装包安装的Ruby,在执行irb命令的时候有可能会显示“ DL is deprecated, please use Fiddle’这样的警告。这是由于 Ruby Installer for Windows安装包附带的 readline库引用了名为DL的旧版本的库,但这个警告不会对使用有任何影响 译者注 执行示例 >irb ±b(main):81: 在这里,只需把刚才代码清单1.1的代码原封不动地在控制台写一次,然后直接按下回车键,即可执行程序。 执行示例 irb(main): 001: e> print("Hello, Ruby. \n") He11c,Ruby.← print方法输入的结果 irb(main): 002: 0> 1备注第三行的n1是Ppnt方法的返回值。关于方法的返回值我们将在731节细说明 像这样,在控制台写的程序可以马上在控制台里执行,这对进行简单的小测试非常方便。但是,这个方法并不适合大程序,这时我们应该考虑使用ruby命 令 注在使用 Mac os x时,ib命令会有无法正确输入日语的情况。这时可在irb命令后加上- breadline选项,执行ib- toread line命令。这样 来,关团 readline功能后,就可以止常输入日语了。但请注意,由于关闭了 readline功能,在控制台编辑已经输入的字符、杳看历史输入记录等功能 都将无法使用。 在控制台输入exit后,按回车键,或者同时按下Ctrl+d,都可以终止irb命令。 12程序解说 接下来,让我们详细解说一下代码清单1.1的程序,虽然代码只有孤零零的一行 121对象 首先,请留意"He1l,Ruby,\n"这部分 print("Hellc, RUBY. \n") 字符串对象 这部分被称为 String对象或者字符串对象,也可以直接称这部分为字符串。也就是说,这部分是一个代表字符串Hel,Ruby.的对象(图1.2) Start Command Prompt with Ruby uby2.因.p451(2四14B2-24〉Ix64 mingw321 c: Sers\kaniiyu)ed c:\src Nsrc>ruby he lloruby rb ello,Ruby。 图1.2数据与对象 字符串、数值、时间等各种数据,在Ruby中都是对象。 备注字符串术尾的Mn是换行符 方法 这一次,让我们留意一下 print这部分。 print ("Helle RUEY, \n#) 字符串对象 pint是一个方法。所谓方法,就是对象的行为。数值的加法或乘法运算、字符串的合并、某时刻一小时后或者一天后的计算等操作,都是通过执行方法来 实现。 print方法的作用就是输出()里的内容。因此,执行 helloruby. rb后,在控制台显示了宇符串对象—He1lo,Ruby. 我们把执行方法时必需的条件称为参数。例如,我们在说明 print方法时,会说“ print方法会把作为参数传递过来的字符串,输出到控制台中"。 我们更换一下 print方法的参数,试一下把它换成共他字符串。 print("Hello, RUBY !\n") 这一次,我们希望输出大写字母的Hel10,RUBY!。是不是感觉会更加精神点呢? 13字符串 我们再详细看看有关字符串的内容 1.3.1换行符与 上文我们提到过字符\n是换行符。利用换行符,我们可以用普通的字符达到换行的效果,例如,为达到以下效果 Hello Ruby 程序可以这么写 print("HelIc, \nRuby\n! \n") 换行符 原本也可以像下面一样这么写 print("Hello

...展开详情
试读 127P Ruby基础教程第4版
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    抢沙发
    一个资源只可评论一次,评论内容不能少于5个字
    • 分享王者

      成功上传51个资源即可获取
    关注 私信 TA的资源
    上传资源赚积分,得勋章
    最新推荐
    Ruby基础教程第4版 12积分/C币 立即下载
    1/127
    Ruby基础教程第4版第1页
    Ruby基础教程第4版第2页
    Ruby基础教程第4版第3页
    Ruby基础教程第4版第4页
    Ruby基础教程第4版第5页
    Ruby基础教程第4版第6页
    Ruby基础教程第4版第7页
    Ruby基础教程第4版第8页
    Ruby基础教程第4版第9页
    Ruby基础教程第4版第10页
    Ruby基础教程第4版第11页
    Ruby基础教程第4版第12页
    Ruby基础教程第4版第13页
    Ruby基础教程第4版第14页
    Ruby基础教程第4版第15页
    Ruby基础教程第4版第16页
    Ruby基础教程第4版第17页
    Ruby基础教程第4版第18页
    Ruby基础教程第4版第19页
    Ruby基础教程第4版第20页

    试读已结束,剩余107页未读...

    12积分/C币 立即下载 >