Ruby - 语法



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

#!/usr/bin/ruby -w

puts "Hello, Ruby!";

这里,我们假设您的 Ruby 解释器位于 /usr/bin 目录中。现在,尝试按如下方式运行此程序:

$ ruby test.rb

这将产生以下结果:

Hello, Ruby!

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

Ruby 程序中的空格

空格字符(例如空格和制表符)通常在 Ruby 代码中被忽略,除非它们出现在字符串中。但是,有时它们用于解释含糊不清的语句。当启用 -w 选项时,此类解释会产生警告。

示例

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)

Ruby 程序中的行尾

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

Ruby 标识符

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

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

保留字

以下列表显示了 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__

Ruby 中的文档块

“文档块”是指从多行构建字符串。在 << 后面,您可以指定一个字符串或标识符来终止字符串文字,并且从当前行到终止符的所有行都是字符串的值。

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

以下是不同的示例:

#!/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 语句

语法

BEGIN {
   code
}

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

示例

#!/usr/bin/ruby

puts "This is main Ruby Program"

BEGIN {
   puts "Initializing Ruby Program"
}

这将产生以下结果:

Initializing Ruby Program
This is main Ruby Program

Ruby END 语句

语法

END {
   code
}

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

示例

#!/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 注释

注释将一行、部分行或几行隐藏在 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
广告