Ruby学习-1.学习对象

Posted 基础编程教程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ruby学习-1.学习对象相关的知识,希望对你有一定的参考价值。

本章会介绍以下内容。

  • 使用 Ruby

    了解如何使用 Ruby 编写并执行程序。

  • 使用字符和数值

    了解字符和数值是如何输出、计算以及给变量赋值等内容。

  • 使用条件判断和循环处理

    了解如何通过字符串或数值比较进行条件判断处理,以及如何进行循环处理。

读完本章,大家就能大概掌握用 Ruby 编写程序的方法了。

1.1 Ruby 的运行方法

首先,让我们用 Ruby 编写一个在屏幕上输出字符的小程序。

Ruby 程序有多种执行方法,其中最常见的方法是使用 ruby 命令来执行,其次就是使用 irb 命令,以交互式命令行方式来执行。若只是想执行小程序,使用 irb 命令会相对简单一点。

接下来,我们先介绍 ruby 命令以及 irb 命令的使用方法。

1.1.1 ruby 命令的执行方法

首先,让我们看看代码清单 1.1 的程序。

代码清单 1.1 helloruby.rb

print("Hello, Ruby.\n")

注 日文 Windows 系统中的 \ 会显示为¥。原则上,本书统一书写为 \。

各位是否有些沮丧呢?一般听到“程序”,我们可能会联想到一长串密码似的东西。但这个程序的代码只有一行,总共才 20 来个字符。可这的确是一个真真切切的程序,执行后就可以达到我们预想的目的。

请大家打开编辑器,写入上述程序,将文件名修改为 helloruby.rb,保存文件。.rb 是 Ruby 程序的后缀,表示这个文件内容是 Ruby 程序。

备注 写代码时会用到编辑器或者 IDE,它们的相关内容请参考 A.5 节。

接下来让我们启动控制台,执行程序。

备注 关于控制台的启动方法,请参考附录 A 里各操作系统的说明。

启动控制台后,使用 cd 命令,移动到存放 helloruby.rb 的文件夹中。例如,使用 Windows,文件放在 C 盘的 src 文件夹(c:\src),然后执行以下命令,

> cd c:\src

接着再执行,

> ruby helloruby.rb

执行后,如图 1.1 所示,会显示“Hello, Ruby.”。

Ruby学习-1.学习对象(1)

图 1.1 执行 Ruby


1.1.2 irb 命令的执行方法

接下来,我们介绍 irb 命令的执行方法。

与 ruby 命令一样,irb 命令在控制台执行,不过不需要指定程序文件。

执行 irb 命令后,就会出现以下这样的命令提示符。1

1使用 Ruby Instarller for Windows 安装包安装的 Ruby,在执行 irb 命令的时候有可能会显示“DL is deprecated, please use Fiddle”这样的警告。这是由于 Ruby Instarller for Windows 安装包附带的 readline 库引用了名为 DL 的旧版本的库,但这个警告不会对使用有任何影响。——译者注

执行示例

> irbirb(main):001:0>

在这里,只需把刚才代码清单 1.1 的代码原封不动地在控制台写一次,然后直接按下回车键,即可执行程序。

执行示例

irb(main):001:0> print("Hello, Ruby.\n")Hello, Ruby.  print 方法输入的结果=> nilirb(main):002:0>

备注 第三行的 nil 是 print 方法的返回值。关于方法的返回值我们将在 7.3.1 节详细说明。

像这样,在控制台写的程序可以马上在控制台里执行,这对进行简单的小测试非常方便。但是,这个方法并不适合大程序,这时我们应该考虑使用 ruby 命令。

注 在使用 Mac OS X 时,irb 命令会有无法正确输入日语的情况。这时可在 irb 命令后加上 --noreadline 选项,执行 irb --noreadline 命令。这样一来,关闭 readline 功能后,就可以正常输入日语了。但请注意,由于关闭了 readline 功能,在控制台编辑已经输入的字符、查看历史输入记录等功能都将无法使用。

在控制台输入 exit 后,按回车键,或者同时按下 Ctrl + d,都可以终止 irb 命令。

1.2 程序解说

接下来,让我们详细解说一下代码清单 1.1 的程序,虽然代码只有孤零零的一行。

1.2.1 对象

首先,请留意 "Hello, Ruby.\n" 这部分。

Ruby学习-1.学习对象(1)

这部分被称为 String 对象或者字符串对象,也可以直接称这部分为字符串。也就是说,这部分是一个代表字符串 Hello, Ruby. 的对象(图 1.2)。

Ruby学习-1.学习对象(1)

图 1.2 数据与对象

字符串、数值、时间等各种数据,在 Ruby 中都是对象。

备注 字符串末尾的 \n 是换行符。

1.2.2 方法

这一次,让我们留意一下 print 这部分。

print 是一个方法。所谓方法,就是对象的行为。数值的加法或乘法运算、字符串的合并、某时刻一小时后或者一天后的计算等操作,都是通过执行方法来实现。

print 方法的作用就是输出 () 里的内容。因此,执行 helloruby.rb 后,在控制台显示了字符串对象——Hello, Ruby.

我们把执行方法时必需的条件称为参数。例如,我们在说明 print 方法时,会说“print 方法会把作为参数传递过来的字符串,输出到控制台中”。

我们更换一下 print 方法的参数,试一下把它换成其他字符串。

print("Hello, RUBY!\n")

这一次,我们希望输出大写字母的 Hello, RUBY!。是不是感觉会更加精神点呢?

1.3 字符串

我们再详细看看有关字符串的内容。

1.3.1 换行符与 \

上文我们提到过字符 \n 是换行符。利用换行符,我们可以用普通的字符达到换行的效果,例如,为达到以下效果,

Hello,Ruby!

程序可以这么写:

原本也可以像下面一样这么写:

print("Hello, Ruby ! ")

输出结果虽然与第一种写法是一样的,但是,这样的写法会降低程序的可读性,因此并不是一个好的写法。既然 Ruby 已经帮我们准备了换行符,我们就直接用第一种方法吧。

除了 \n 以外,当我们想在字符串里嵌入特殊符号时,也会用到 \。双引号是表示字符串开始和结束的符号,假设我们希望字符串里包含双引号,程序要写成 \"

print("Hello, \"Ruby\".\n")

的输出结果为:

Hello, "Ruby".

像这样,程序会对字符串里 \ 后的字符做特殊处理。2 因此,如果字符串里需要包含 \,程序要写成 \\。例如,

2这个过程称为转义,\ 称为转义字符。——译者注

print("Hello \\ Ruby!")

的输出结果为:

Hello \ Ruby!

请注意,两个 \ 的输出结果是一个 \。

1.3.2 ' ' 与 " "

创建字符串对象除了可以使用" "(双引号)外,也可以使用' '(单引号)。我们试试把之前程序的双引号换成单引号,看一下有什么样的效果。

这次的输出结果为:

Hello, \nRuby\n!\n

程序会原封不动地输出单引号里的内容。

也就是说,在单引号里,像 \n 这样的特殊字符不经过转义,程序会原封不动地直接输出。但也有例外,例如在字符串里想嵌入 \ 与单引号时,还是需要在之前加上 \。也就是像这样,

print('Hello, \\ \'Ruby\'.')

的输出结果为:

Hello, \ 'Ruby'.


以上是关于Ruby学习-1.学习对象的主要内容,如果未能解决你的问题,请参考以下文章

ruby项目,语言提交检查怎样高速学习ruby ?

ruby学习笔记

ruby 我感兴趣的库中的代码片段

IOS开发-OC学习-常用功能代码片段整理

java SpringRetry学习的代码片段

python 机器学习有用的代码片段