📅  最后修改于: 2023-12-03 15:09:58.487000             🧑  作者: Mango
Ruby 是一种动态、面向对象的编程语言。和其它编程语言一样,Ruby 也有一些关键字,这些关键字有特殊的含义,不能用作标识符。
下面介绍 Ruby 中的一些关键字。
alias
关键字用于给方法、变量或常量定义别名,语法如下:
alias new_name old_name
其中,new_name
是新的名称,old_name
是旧的名称。
例如,下面的代码给 puts
方法定义了一个别名 say_hi
:
alias say_hi puts
say_hi "Hello, world!" # 相当于 puts "Hello, world!"
begin
关键字用于开始一个块,可以和 rescue
、ensure
关键字一起使用。常用于异常处理。
begin
# some code here
rescue StandardError => e
# handle exception
ensure
# ensure code here
end
break
关键字用于跳出当前循环块,通常和 while
或 until
关键字一起使用。
i = 0
while i < 5
puts i
i += 1
break if i == 3
end
# 输出:
# 0
# 1
# 2
case
关键字用于多条件判断,可以和 when
、else
关键字一起使用。
case score
when 90..100
grade = "A"
when 80..89
grade = "B"
when 70..79
grade = "C"
when 60..69
grade = "D"
else
grade = "F"
end
class
关键字用于定义一个类,类是一种面向对象的数据结构,用于封装数据和方法。
class Foo
# some code here
end
def
关键字用于定义一个方法,方法是一段可重复使用的代码块,用于封装功能。
def say_hello(name)
puts "Hello, #{name}!"
end
say_hello "Ruby" # 输出:Hello, Ruby!
do
关键字用于开始一个块,可以和 end
关键字一起使用,也可以和大多数关键字一起使用。
[1, 2, 3].each do |num|
puts num
end
5.times do
puts "Hello"
end
else
关键字用于 if
、unless
、case
等条件语句中,表示除 if
、unless
、case
的条件外的代码块。
if score >= 60
puts "You pass the exam."
else
puts "You fail the exam."
end
elsif
关键字用于 if
、unless
条件语句中,表示新的条件。
if score >= 90
grade = "A"
elsif score >= 80
grade = "B"
elsif score >= 70
grade = "C"
elsif score >= 60
grade = "D"
else
grade = "F"
end
end
关键字用于结束一个块,可以和 if
、unless
、case
、def
、class
、module
等关键字一起使用。
if score >= 60
puts "You pass the exam."
end
ensure
关键字用于保证一段代码一定会被执行,用于处理一些特殊情况。
file = open("data.txt")
begin
# some code here
ensure
file.close
end
false
关键字表示假,可以用于逻辑表达式、条件语句等。
if score >= 60 && passed?
puts "You pass the exam."
else
puts "You fail the exam."
end
for
关键字用于循环遍历集合、数组等序列类型。
for num in [1, 2, 3]
puts num
end
if
关键字用于条件判断,可以和 elsif
、else
关键字一起使用。
if score >= 60
puts "You pass the exam."
else
puts "You fail the exam."
end
in
关键字用于表示元素是否属于某个集合中,一般和 for
、each
、case
关键字一起使用。
if 3 in [1, 2, 3]
puts "3 is in the array."
end
module
关键字用于定义一个模块,模块是一种用于封装功能的组织方式。
module MyModule
# some code here
end
next
关键字用于跳过当前循环,继续执行下一次循环。
i = 0
while i < 5
i += 1
next if i == 3
puts i
end
# 输出:
# 1
# 2
# 4
# 5
nil
关键字表示空,用于表示变量或返回值为空。
def find_user(username)
# some code here
return nil if user_not_found?
# some code here
end
not
关键字用于逻辑非运算,可以用于逻辑表达式、条件语句等。
if not user_authenticated?
redirect_to login_path
end
or
关键字用于逻辑或运算,可以用于逻辑表达式、条件语句等。
if score >= 60 or passed?
puts "You pass the exam."
else
puts "You fail the exam."
end
redo
关键字用于重新执行一次当前循环,通常和 while
或 until
关键字一起使用。
i = 0
while i < 5
puts i
i += 1
redo if i == 3
end
# 输出:
# 0
# 1
# 2
# 2
# 3
# 4
rescue
关键字用于异常处理,可以和 begin
、ensure
关键字一起使用。
begin
# some code here
rescue StandardError => e
# handle exception
end
retry
关键字用于重新执行一次异常处理,通常和 rescue
关键字一起使用。
begin
# some code here
rescue StandardError => e
# handle exception
retry if retryable?
end
return
关键字用于从方法中返回结果,可以带有返回值。
def square(n)
return n * n
end
puts square(5) # 输出:25
self
关键字用于表示当前对象自身,在方法内部可以使用 self
访问对象的属性和方法。
class MyClass
def foo
self.bar
end
def bar
# some code here
end
end
super
关键字用于调用父类中的同名方法,可以带有参数。
class MySubclass < MySuperclass
def foo(args)
super
# some code here
end
end
then
关键字用于条件语句中,表示条件成立后要执行的代码块。
if score >= 60 then puts "You pass the exam." end
true
关键字表示真,可以用于逻辑表达式、条件语句等。
if score >= 60 and passed?
puts "You pass the exam."
else
puts "You fail the exam."
end
undef
关键字用于取消方法或变量的定义,使其失效。
class MyClass
def foo
# some code here
end
undef foo
end
unless
关键字用于条件判断,和 if
类似,不同的是判断条件相反。
unless score < 60
puts "You pass the exam."
else
puts "You fail the exam."
end
until
关键字用于循环某个条件成立后跳出循环,和 while
类似,不同的是判断条件相反。
i = 0
until i > 4
puts i
i += 1
end
# 输出:
# 0
# 1
# 2
# 3
# 4
when
关键字用于 case
条件语句中,表示一个选项。
case score
when 90..100
grade = "A"
when 80..89
grade = "B"
when 70..79
grade = "C"
when 60..69
grade = "D"
else
grade = "F"
end
while
关键字用于循环某个条件成立时执行代码块。
i = 0
while i < 5
puts i
i += 1
end
# 输出:
# 0
# 1
# 2
# 3
# 4
yield
关键字用于调用方法时,将控制权转给方法的代码块。
def print_twice
yield "Hello"
yield "Ruby"
end
print_twice { |word| puts "#{word}#{word}" }
# 输出:
# HelloHello
# RubyRuby
以上就是 Ruby 中的关键字。虽然这些关键字很常见,但也要避免在自己的程序中使用它们作为标识符,以免造成代码混淆。