📜  或 Ruby 中的关键字(1)

📅  最后修改于: 2023-12-03 15:09:58.487000             🧑  作者: Mango

Ruby 关键字

Ruby 是一种动态、面向对象的编程语言。和其它编程语言一样,Ruby 也有一些关键字,这些关键字有特殊的含义,不能用作标识符。

下面介绍 Ruby 中的一些关键字。

alias

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

begin 关键字用于开始一个块,可以和 rescueensure 关键字一起使用。常用于异常处理。

begin
  # some code here
rescue StandardError => e
  # handle exception
ensure
  # ensure code here
end
break

break 关键字用于跳出当前循环块,通常和 whileuntil 关键字一起使用。

i = 0
while i < 5
  puts i
  i += 1
  break if i == 3
end
# 输出:
# 0
# 1
# 2
case

case 关键字用于多条件判断,可以和 whenelse 关键字一起使用。

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 关键字用于定义一个类,类是一种面向对象的数据结构,用于封装数据和方法。

class Foo
  # some code here
end
def

def 关键字用于定义一个方法,方法是一段可重复使用的代码块,用于封装功能。

def say_hello(name)
  puts "Hello, #{name}!"
end

say_hello "Ruby" # 输出:Hello, Ruby!
do

do 关键字用于开始一个块,可以和 end 关键字一起使用,也可以和大多数关键字一起使用。

[1, 2, 3].each do |num|
  puts num
end

5.times do
  puts "Hello"
end
else

else 关键字用于 ifunlesscase 等条件语句中,表示除 ifunlesscase 的条件外的代码块。

if score >= 60
  puts "You pass the exam."
else
  puts "You fail the exam."
end
elsif

elsif 关键字用于 ifunless 条件语句中,表示新的条件。

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

end 关键字用于结束一个块,可以和 ifunlesscasedefclassmodule 等关键字一起使用。

if score >= 60
  puts "You pass the exam."
end
ensure

ensure 关键字用于保证一段代码一定会被执行,用于处理一些特殊情况。

file = open("data.txt")
begin
  # some code here
ensure
  file.close
end
false

false 关键字表示假,可以用于逻辑表达式、条件语句等。

if score >= 60 && passed?
  puts "You pass the exam."
else
  puts "You fail the exam."
end
for

for 关键字用于循环遍历集合、数组等序列类型。

for num in [1, 2, 3]
  puts num
end
if

if 关键字用于条件判断,可以和 elsifelse 关键字一起使用。

if score >= 60
  puts "You pass the exam."
else
  puts "You fail the exam."
end
in

in 关键字用于表示元素是否属于某个集合中,一般和 foreachcase 关键字一起使用。

if 3 in [1, 2, 3]
  puts "3 is in the array."
end
module

module 关键字用于定义一个模块,模块是一种用于封装功能的组织方式。

module MyModule
  # some code here
end
next

next 关键字用于跳过当前循环,继续执行下一次循环。

i = 0
while i < 5
  i += 1
  next if i == 3
  puts i
end
# 输出:
# 1
# 2
# 4
# 5
nil

nil 关键字表示空,用于表示变量或返回值为空。

def find_user(username)
  # some code here
  return nil if user_not_found?
  # some code here
end
not

not 关键字用于逻辑非运算,可以用于逻辑表达式、条件语句等。

if not user_authenticated?
  redirect_to login_path
end
or

or 关键字用于逻辑或运算,可以用于逻辑表达式、条件语句等。

if score >= 60 or passed?
  puts "You pass the exam."
else
  puts "You fail the exam."
end
redo

redo 关键字用于重新执行一次当前循环,通常和 whileuntil 关键字一起使用。

i = 0
while i < 5
  puts i
  i += 1
  redo if i == 3
end
# 输出:
# 0
# 1
# 2
# 2
# 3
# 4
rescue

rescue 关键字用于异常处理,可以和 beginensure 关键字一起使用。

begin
  # some code here
rescue StandardError => e
  # handle exception
end
retry

retry 关键字用于重新执行一次异常处理,通常和 rescue 关键字一起使用。

begin
  # some code here
rescue StandardError => e
  # handle exception
  retry if retryable?
end
return

return 关键字用于从方法中返回结果,可以带有返回值。

def square(n)
  return n * n
end

puts square(5) # 输出:25
self

self 关键字用于表示当前对象自身,在方法内部可以使用 self 访问对象的属性和方法。

class MyClass
  def foo
    self.bar
  end
  def bar
    # some code here
  end
end
super

super 关键字用于调用父类中的同名方法,可以带有参数。

class MySubclass < MySuperclass
  def foo(args)
    super
    # some code here
  end
end
then

then 关键字用于条件语句中,表示条件成立后要执行的代码块。

if score >= 60 then puts "You pass the exam." end
true

true 关键字表示真,可以用于逻辑表达式、条件语句等。

if score >= 60 and passed?
  puts "You pass the exam."
else
  puts "You fail the exam."
end
undef

undef 关键字用于取消方法或变量的定义,使其失效。

class MyClass
  def foo
    # some code here
  end
  undef foo
end
unless

unless 关键字用于条件判断,和 if 类似,不同的是判断条件相反。

unless score < 60
  puts "You pass the exam."
else
  puts "You fail the exam."
end
until

until 关键字用于循环某个条件成立后跳出循环,和 while 类似,不同的是判断条件相反。

i = 0
until i > 4
  puts i
  i += 1
end
# 输出:
# 0
# 1
# 2
# 3
# 4
when

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

while 关键字用于循环某个条件成立时执行代码块。

i = 0
while i < 5
  puts i
  i += 1
end
# 输出:
# 0
# 1
# 2
# 3
# 4
yield

yield 关键字用于调用方法时,将控制权转给方法的代码块。

def print_twice
  yield "Hello"
  yield "Ruby"
end

print_twice { |word| puts "#{word}#{word}" }
# 输出:
# HelloHello
# RubyRuby

以上就是 Ruby 中的关键字。虽然这些关键字很常见,但也要避免在自己的程序中使用它们作为标识符,以免造成代码混淆。