Ruby 的语法设计得简洁而富有表现力。让我们看看它是如何读取和执行你的程序的。
1. 语句的结束
在 Ruby 中,新的一行通常表示语句的结束——无需分号。
示例
puts "Hello"
puts "World"
puts "World"
输出
Hello
World
World
但是,你也可以使用分号在一行上写多个语句
puts "Hello"; puts "World"
此程序输出与上面相同。
注意:在惯用的 Ruby 代码中,分号不常用。
2. 注释以井号 (#) 开始
Ruby 使用井号 (#) 符号进行单行注释,类似于 Python。
示例
# This prints "Hello World!" to the screen
puts "Hello World!"
puts "Hello World!"
对于多行注释,请使用 =begin 和 =end
=begin
Ruby 代码,用于打印
"Hello" 和 "World" 在不同的行上
=end
puts "Hello"
puts "World"
Ruby 代码,用于打印
"Hello" 和 "World" 在不同的行上
=end
puts "Hello"
puts "World"
指南
- =begin 和 =end 必须位于行的开头(它们前面不能有任何空格)。
- 注释内容必须出现在它们之间的单独行上。
3. 命名约定
命名事物时遵循以下约定
- 变量和方法:以小写字母或下划线开头(例如,name、my_value)。
- 类名:以大写字母开头(例如,Person、Calculator)。
- 区分大小写:例如,变量 value 和 Value 是不同的。
4. 方法调用中的括号
与许多其他语言不同,Ruby 在调用方法时不需要括号。
示例
puts "Hello World!"
但是,如果你愿意,仍然可以使用括号
puts("Hello World!")
最佳实践
- 在传递多个参数时使用括号,以提高可读性。
- 单参数避免使用括号(除非需要清晰)。
5. 代码块和作用域
Ruby 使用 end 关键字来闭合代码块。缩进是可选的,但强烈建议为了可读性而使用。
示例
# 定义一个方法
def greet(name)
puts "Hello, #{name}!"
puts "How are you?"
end
# 调用方法
greet "Robert"
def greet(name)
puts "Hello, #{name}!"
puts "How are you?"
end
# 调用方法
greet "Robert"
输出
Hello, Robert!
How are you?
How are you?
这里,
- greet 中的代码缩进以显示作用域。
- end 标记着方法块的结束。
注意:Ruby 中用大括号 {} 来表示单行代码块(例如在迭代器中),并且 BEGIN 和 END 中的代码是必需的。
6. BEGIN 语句
BEGIN 语句声明在程序运行之前将被调用的代码。
示例
puts "Main Program"
# Ruby 首先运行此代码
BEGIN {
puts "Loading..."
puts "Initializing Ruby Program"
puts "--------------------------"
}
# Ruby 首先运行此代码
BEGIN {
puts "Loading..."
puts "Initializing Ruby Program"
puts "--------------------------"
}
输出
Loading...
Initializing Ruby Program
--------------------------
Main Program
Initializing Ruby Program
--------------------------
Main Program
在这里,即使 BEGIN 块出现在 puts "Main Program" 之后,Ruby 也会在任何其他代码之前运行它。BEGIN 就是这样工作的。
注意:BEGIN 和 END 中的代码必须用大括号 { ... } 包裹,这与其他大多数使用 do...end 的 Ruby 代码块不同。
7. END 语句
END 语句声明在程序结束时将被调用的代码。
示例
puts "Main Program"
# Ruby 最后运行此代码
END {
puts "--------------------------"
puts "Hasta la vista..."
puts "Program Terminated!"
}
# Ruby 首先运行此代码
BEGIN {
puts "Loading..."
puts "Initializing Ruby Program"
puts "--------------------------"
}
# Ruby 最后运行此代码
END {
puts "--------------------------"
puts "Hasta la vista..."
puts "Program Terminated!"
}
# Ruby 首先运行此代码
BEGIN {
puts "Loading..."
puts "Initializing Ruby Program"
puts "--------------------------"
}
输出
Loading...
Initializing Ruby Program
--------------------------
Main Program
--------------------------
Hasta la vista...
Program Terminated!
Initializing Ruby Program
--------------------------
Main Program
--------------------------
Hasta la vista...
Program Terminated!
注意:不要将 END 语句与 end 关键字混淆;end 用于闭合 def、if、class 等代码块。
下一步是什么?
你现在已经熟悉了 Ruby 语法的基本知识,以及它如何区别于其他编程语言。
要继续你的 Ruby 之旅,请点击 此链接学习 注释的工作原理。
订阅 Programiz 博客!
通过注册我们的电子邮件订阅,成为第一个接收 Programiz 的最新教程。还可以获得更多奖品,如最新的功能内部预览等等。