在 Ruby 中编写单行 if 语句

Nurudeen Ibrahim 2023年1月30日
  1. 在 Ruby 中使用三元运算符编写单行 if 语句
  2. 在 Ruby 中仅使用 IF 编写单行语句
  3. 在 Ruby 中使用 IF-Else 编写单行语句
  4. 在 Ruby 中使用 unless 编写单行语句
  5. 在 Ruby 中使用 Unless-Else 编写单行语句
在 Ruby 中编写单行 if 语句

与其他现代编程语言一样,Ruby 有不同的表达条件流的方式,但更灵活。

在本教程中,我们的重点将是如何使用 ifelseunless 编写单行条件语句。

在 Ruby 中使用三元运算符编写单行 if 语句

三元运算符的用法类似于它在其他编程语言中的使用方式。它具有以下语法。

condition ? do_something_if_condition_is_true : do_another_thing_if_condition_is_false

示例代码:

def check_even(number)
  response = number.even? ? "Yeah, it's even" : "No, it's not"
  puts response
end

check_even(4)
check_even(5)

输出:

Yeah, it's even
No, it's not

在 Ruby 中仅使用 IF 编写单行语句

当你只想在条件为真时做某事而在条件为假时什么都不做时,这很有用。

def increment_with_even(n)
  number = 10
  number += n if n.even?
  puts number
end

increment_with_even(4)
increment_with_even(5)

输出:

14
10

在 Ruby 中使用 IF-Else 编写单行语句

这是一个常规的 if-else,如果条件为真,则指定一个动作,如果条件为假,则指定另一个动作。

def check_even(number)
  response = if number.even? then "Yeah, it's even" else "No, it's not" end
  puts response
end

check_even(4)
check_even(5)

输出:

Yeah, it's even
No, it's not

在 Ruby 中使用 unless 编写单行语句

unlessif 的相反形式。这意味着如果没有。

def increment_with_even(n)
  number = 10
  number += n unless !n.even?
  puts number
end

increment_with_even(4)
increment_with_even(5)

输出:

14
10

不推荐在上面的例子中使用 unless。使用这种方式进行说明。

unless 被视为否定陈述。在这种情况下,它不应该用于否定表达式 !n.even? 使代码更难理解。

在 Ruby 中使用 Unless-Else 编写单行语句

def check_even(number)
  response = unless number.even? then "No, it's not" else "Yeah, it's even" end
  puts response
end

check_even(4)
check_even(5)

输出:

Yeah, it's even
No, it's not