Ruby 基础,本章我们将介绍 Ruby 语言的基本编程概念。 我们介绍非常基本的程序。 我们将使用变量,常量和基本数据类型。
我们从一个非常简单的代码示例开始。
这是简单的 Ruby 脚本。 它将向控制台输出“ This is Ruby”消息。
这是将执行脚本的 Ruby 解释器的路径。
puts
是 Ruby 关键字,将其参数输出到终端。 在我们的例子中,参数是一个字符串消息,由双引号引起来。
执行脚本将得到以上输出。
我们可以从终端读取值。 (终端和控制台是同义词)
第二个程序将从控制台读取一个值并打印出来。
print
关键字将消息打印到控制台。 print 和 puts 关键字之间的区别在于,print 关键字不会开始新的一行。 puts
关键字自动开始新的一行。
在这里,我们从用户那里读取输入并将其存储在 name 变量中。 gets
是一种方法,在我们的情况下是从终端读取一条线。 这是默认情况下我们可以使用的方法之一。
在此代码行中,我们执行变量插值。 变量插值正在用字符串文字中的值替换变量。 变量插值的另一个名称是:变量替换和变量扩展。
这是第二个程序的输出。
Ruby 代码可以从命令行运行。 这是受 Perl 单一代码启发的,在该代码中运行一些小的代码片段来完成一些小的任务。
-e 选项告诉 Ruby 执行该行上指定的 Ruby 代码,而不搜索 Ruby 文件名。 我们的示例将 Ruby 解释器的版本输出到终端。
Ruby 解释器具有-c
选项,用于检查代码的语法。 如果使用此选项,则不执行代码。 如果没有语法错误,Ruby 将在标准输出中显示“语法正确”。
在上面的示例中,存在语法错误。 如果将 class 和 end 关键字放在一行上,则还必须使用分号; 字符。
发现语法错误。 如果我们在Being
类后面加上分号,该错误消息将消失。
Ruby 命令行参数
Ruby 程序可以接收命令行参数。 当我们运行程序时,它们会遵循程序的名称。
在文件名之后指定的命令行参数可用于名为ARGV
的全局数组中的 Ruby 程序。
在这里,我们将所有命令行参数打印到终端。
我们提供了三个数字作为命令行参数,并将它们打印到控制台上。
在下面的示例中,我们将打印所有参数以及脚本名称。
$0
全局变量包含正在执行的脚本的名称。 Ruby 中的全局变量以$
字符开头。 $*
是另一个全局变量。 它是ARGV
变量的同义词。 它包含为当前脚本提供的命令行参数。
args2.rb
脚本接收三个字符串。 脚本的名称和三个参数将显示在终端上。
Ruby 变量和常量
变量是存储数据的地方。 变量具有名称和数据类型。 数据类型是不同类型的值。 整数,字符串和浮点数是数据类型的示例。 Ruby 是一种动态语言。 这意味着我们不必(也不能)将变量声明为某种数据类型。 而是由 Ruby 解释器在分配时确定数据类型。
此外,变量可以随时间包含不同的值以及不同类型的值。 这不同于强类型的语言,例如 Java,C 或 Pascal。 与变量不同,常量(应)保留其值。 一旦初始化,便无法修改。 但是,在 Ruby 中,可以更改常量的值。 在这种情况下,会发出警告。
在上面的示例中,我们使用四个变量。
我们为城市变量分配一个字符串值。 该变量是动态创建的。
我们再创建两个变量。 我们可以将两个语句放在一行中。 但是,为了便于阅读,每个语句应放在单独的行上。
我们将变量的值打印到终端。
我们为城市变量分配一个新值。
示例的输出。
常数正如我们已经说过的,常数在一段时间内存储一个值。 与其他语言不同,该规则不是在 Ruby 中强制执行的。
在此示例中,我们声明两个常量和一个变量。
Ruby 中的常量以大写字母开头。 通常的做法是用大写字母写一个常量的所有字符。
我们声明并初始化一个变量。 稍后,我们为变量分配一个新值。 是合法的
我们为常数分配一个新值。 常量一旦创建就不应修改。 否则,创建常量没有任何意义。 Ruby 解释器将发出警告。
脚本的输出。
Ruby 变量插值
变量插值正在用字符串文字中的值替换变量。 变量插值的其他名称是变量替换和变量扩展。
在 Ruby 中,字符串是不可变的。 我们无法修改现有字符串。 变量插值发生在字符串创建期间。
在这里,我们声明两个变量。
字符串消息以双引号作为边界。 当我们在#{
和}
字符之间放置一个变量名时,将对该变量进行插值:即用其值替换。
这是输出。