Ruby 简明教程

Ruby - Syntax

让我们用 Ruby 编写一个简单的程序。所有 Ruby 文件都将具有扩展名 .rb 。因此,将以下源代码放入 test.rb 文件中。

#!/usr/bin/ruby -w

puts "Hello, Ruby!";

在这里,我们假设你的计算机在 /usr/bin 目录中有 Ruby 解释器。现在,尝试按如下所示运行此程序——

$ ruby test.rb

这会产生以下结果 −

Hello, Ruby!

你已经看到了一个简单的 Ruby 程序,现在让我们了解一些与 Ruby 语法相关的基本概念。

Whitespace in Ruby Program

在 Ruby 代码中通常忽略空格字符(如空格和制表符),但当它们出现在字符串中时除外。但是,有时它们用于解释歧义的声明。在启用 -w 选项时,这种解释会产生警告。

Example

a + b is interpreted as a+b ( Here a is a local variable)
a  +b is interpreted as a(+b) ( Here a is a method call)

Line Endings in Ruby Program

Ruby 将分号和换行符解释为语句的结尾。但是,如果 Ruby 在行尾遇到运算符,例如 +、- 或反斜杠,则表示语句仍在继续。

Ruby Identifiers

标识符是变量、常量和方法的名称。Ruby 标识符区分大小写。这意味着 Ram 和 RAM 是 Ruby 中的两个不同的标识符。

Ruby 标识符名称可能由字母数字字符和下划线字符(_)组成。

Reserved Words

以下列表显示了 Ruby 中的保留字。这些保留字不能用作常量或变量名。不过,可将它们用作方法名。

BEGIN

do

next

then

END

else

nil

true

alias

elsif

not

undef

and

end

or

unless

begin

ensure

redo

until

break

false

rescue

when

case

for

retry

while

class

if

return

while

def

in

self

FILE

defined?

module

super

LINE

Here Document in Ruby

“Here Document” 引用了如何从多行创建字符串。在 << 后,你可以指定一个字符串或一个标识符来终止该字符串字面值,并且当前行后所有行直到终止符的行都是该字符串的值。

如果终止符带有引号,则引号的类型决定了面向行的字符串字面值类型。注意,<< 和终止符之间不能有空格。

这里有一些不同的示例 −

#!/usr/bin/ruby -w

print <<EOF
   This is the first way of creating
   here document ie. multiple line string.
EOF

print <<"EOF";                # same as above
   This is the second way of creating
   here document ie. multiple line string.
EOF

print <<`EOC`                 # execute commands
	echo hi there
	echo lo there
EOC

print <<"foo", <<"bar"  # you can stack them
	I said foo.
foo
	I said bar.
bar

这会产生以下结果 −

   This is the first way of creating
   her document ie. multiple line string.
   This is the second way of creating
   her document ie. multiple line string.
hi there
lo there
      I said foo.
      I said bar.

Ruby BEGIN Statement

Syntax

BEGIN {
   code
}

声明在程序运行之前要调用的代码。

Example

#!/usr/bin/ruby

puts "This is main Ruby Program"

BEGIN {
   puts "Initializing Ruby Program"
}

这会产生以下结果 −

Initializing Ruby Program
This is main Ruby Program

Ruby END Statement

Syntax

END {
   code
}

声明在程序结束时要调用的代码。

Example

#!/usr/bin/ruby

puts "This is main Ruby Program"

END {
   puts "Terminating Ruby Program"
}
BEGIN {
   puts "Initializing Ruby Program"
}

这会产生以下结果 −

Initializing Ruby Program
This is main Ruby Program
Terminating Ruby Program

Ruby Comments

注释将一行、一行的一部分或多行从 Ruby 解释器中隐藏。你可以在一行的开头使用井号字符 (#) −

# I am a comment. Just ignore me.

或者,注释可以在语句或表达式之后在同一行上 −

name = "Madisetti" # This is again comment

您可以按如下方式注释多行 −

# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.

这是另一种形式。此块注释使用 =begin/=end 将多行从解释器中隐藏 −

=begin
This is a comment.
This is a comment, too.
This is a comment, too.
I said that already.
=end