前言

前言

乐在其中的编程语言

与计算机程序交流的方式有两种:第一种方式是使用程序,另外一种是编写程序。

然而,编写程序的人相对要少,大部分人都是使用程序而已。这个有点接近读文章的人与写文章的人的比例,读小说、散文、纪实文学等的人很多,但写的人数量就远比读者少了。

这里说的“文章”不仅仅是指商业出版物,还包括个人网站。很多人几乎每天都更新博客,有的是与身边的人分享有趣的事情,有的是提供某些有用的信息。虽然可能只是一些微不足道的信息,但还是会有读者乐于阅读,这类读者就是用户,因此博客也可以说是一种供读者阅读的文章。

大家基于各种目的创建了这类网站,其中不少人是因为很享受自己编写内容的过程。以个人网站为例,单纯追求创作乐趣的人可能会更多。

编程不也是如此吗?也就是说,并不仅仅是为了某种目的而编程,而是因为编程时乐在其中。

编程的乐趣并非单指程序内容,使用的编程语言不同,所获得的乐趣也不一样。像这样,让编程本身变得有趣的编程语言真的存在吗?

——存在。Ruby 就是其中一种。

* * *

Ruby 是一种旨在使大家编程时能乐在其中的编程语言。完全面向对象,有丰富的类库,直观、人性化的语法等都是 Ruby 的特征,但这些并不是 Ruby 的目的,只是实现快乐编程的手段。

程序世界里有着种类繁多的语言。这些语言诞生的缘由多种多样,有的是为了编写运行速度快的程序,有的是为了可以在短时间内编写程序,有的是为了让程序只需编写一次就可以在任何环境中运行,有的是为了使小孩也能进行简单编程,等等。但是,似乎并没有哪个语言积极地宣称其目的是快乐编程。这可能是由于各个语言的设计者并没有认真考虑过让任何人都可以编程吧。

当然,使大家编程时乐在其中的语言,肯定是一种简单易掌握的语言,复杂的语言不可能让人体会到快乐。同时,这门语言又必须是一个功能强大的语言,若非如此,实际编写程序时会非常费劲。毋庸置言,Ruby 就是这样一种简单易掌握,并且功能强大的编程语言。

* * *

为了让零编程经验的读者轻松掌握 Ruby,本书会巨细无遗地介绍 Ruby。从编写程序时所需要的变量、常量、方法、类、流程控制等的语法说明,到主要类的使用方法和简单的应用,都会尽量用通俗易懂的方式来说明。对于从未接触过计算机的读者来说,也许这有点难,但是那些稍微懂点 HTML 的读者很容易就能做到融会贯通。另外,对于那些并非初学者的读者来说,若想再回顾一下 Ruby 的各知识点,本书也能提供不少帮助。

各位读者若能通过本书,熟练掌握 Ruby,找到属于自己的快乐而有趣的编程方式,并灵活运用到实际中,笔者将不胜荣幸。

欢迎来到 Ruby 的世界!

 

高桥征义 后藤裕藏

关于 Ruby

在开始编程之前,让我们先了解一下什么是 Ruby。

  • Ruby 是面向对象语言

    Ruby 是一群热爱面向对象编程的程序员,为了实现最优秀的面向对象语言而设计、开发出来的。它完全面向对象,所思考的东西都可以直接通过代码表达出来 1。同时,Ruby 也具有继承以及 Mix-in 等面向对象语言的必备特性。

    另外,Ruby 不仅提供了丰富的标准类库,还具有一些能够提高编程效率的功能,比如应对各种异常的错误处理机制、自动释放内存的垃圾回收机制等。

  • Ruby 是脚本语言

    用 C 语言或者 Java 语言编写的程序,在运行前需要执行编译这一步骤,把源码翻译成计算机可以理解的机器码。而用脚本语言编写的源码并不需要编译,可以直接运行。

    也就是说,在使用脚本语言时,开发流程会从

    编写源码 → 编译源码 → 运行程序

    变为

    编写源码 → 运行程序

    因此,与需要编译的语言相比,Ruby 更能让大家轻松享受到编程之趣。

  • Ruby 是跨平台的语言

    Ruby 能在 Mac OS X、Linux、FreeBSD、Solaris 等类 Unix 操作系统以及 Windows 操作系统等平台上运行,而且它的大部分脚本都无需修改即可在不同的平台上运行。

  • Ruby 是开源软件

    Ruby 诞生时,松本行弘先生就公开了源码,使之成为开源软件(自由软件,free software)。任何人都可以随意获取 Ruby,并自由使用。自 1995 年松本行弘先生在互联网上发布 Ruby 以来, Ruby 得到了来自各方的广泛支持,并一直活跃至今。

1与面向过程的编程方法相比,我们一般认为面向对象的编程方法比较符合人的思维习惯。——译者注

本书的读者对象

本书是一本入门级图书,面向具备一定计算机知识但没有编程经验的读者,旨在帮助他们掌握 Ruby 编程。本书尽量以无需具备专业知识也能读懂的方式向大家介绍 Ruby,但省略了“启动 / 关闭计算机”“Shift 键的使用方法”等基础知识的说明。本书面向以下读者:

  • 具备操作文件和执行命令等计算机基础知识的读者

  • 可使用编辑器创建文本文件的读者

  • 计划学习编程的读者

本书的结构

本书采用循序渐进、逐步深入的写作方式,有一定 Ruby 编程基础的读者可能会觉得前半部分有些无趣。建议这类读者快速浏览前两部分,从第 3 部分开始仔细阅读。

  • 第 1 部分 Ruby 初体验

    通过简单的 Ruby 小程序介绍 Ruby 程序的基本构成。

  • 第 2 部分 Ruby 的基础

    介绍 Ruby 语法、规则等 Ruby 编程的基础知识,以及类、模块等面向对象编程的相关内容。

  • 第 3 部分 Ruby 的类

    要编写程序,只懂语法还远远不够。Ruby 之所以能使大家快乐编程,主要缘于 Ruby 精心设计的标准类库。

    在本部分,我们会列举多个 Ruby 的基础类,介绍其功能和使用方法。

  • 第 4 部分 动手制作工具

    在本部分,我们将进行一次总复习,介绍一些稍微复杂的 Ruby 程序,让大家尝试一下用 Ruby 编写实际的程序。

  • 附录 A 搭建 Ruby 运行环境

    介绍各个平台的 Ruby 安装方法。

  • 附录 B 参考

    介绍使用 Ruby 时所需的知识以及各相关信息。

  • 习题答案和全书代码清单

    读者可访问以下网址参考本书习题答案和代码清单。

    https://rubyjichujiaocheng.github.io/

Ruby 的运行环境

本书内容适用于 Ruby 2.3 版本,适用的操作系统为 Windows 10/8.1、Mac OS X,以及 Linux 等常见的类 Unix 操作系统。

在继续阅读本书前,请读者按照附录 A.1 的说明,安装 Ruby 运行环境。

目录

  • 版权声明
  • 推荐序
  • 译者序
  • 前言
  • 第 1 部分 Ruby 初体验
  • 第 1 章 Ruby 初探
  • 第 2 章 便利的对象
  • 第 3 章 创建命令
  • 第 2 部分 Ruby 的基础
  • 第 4 章 对象、变量和常量
  • 第 5 章 条件判断
  • 第 6 章 循环
  • 第 7 章 方法
  • 第 8 章 类和模块
  • 第 9 章 运算符
  • 第 10 章 错误处理与异常
  • 第 11 章 块
  • 第 3 部分 Ruby 的类
  • 第 12 章 数值类
  • 第 13 章 数组类
  • 第 14 章 字符串类
  • 第 15 章 散列类
  • 第 16 章 正则表达式类
  • 第 17 章 IO 类
  • 第 18 章 File 类与 Dir 类
  • 第 19 章 Encoding 类
  • 第 20 章 Time 类与 Date 类
  • 第 21 章 Proc 类
  • 第 4 部分 动手制作工具
  • 第 22 章 文本处理
  • 第 23 章 检索邮政编码
  • 附录
  • 附录 A 搭建 Ruby 运行环境
  • 附录 B Ruby 参考集
  • 后记
  • 谢辞