Ruby 中否定和不等式的区别?
Difference between negation and inequality in Ruby?
Ruby编程语言中的if !variable == 10 {...}
和if variable != 10 {...}
有什么区别?当然,这可以应用于所有其他语言。在第一种情况下我们只是否定条件,而在第二种情况下测试变量是否实际上不等于 10?
if variable != 10
等同于 unless variable == 10
而 !variable
正在否定变量,所以首先它被评估为一个表达式,然后被否定。
示例
variable = 5
variable != 10 # => true
!variable # => false (5 is evaluated to true, then negated)
!variable = 10 # => warning: found = in conditional, should be ==
在很大程度上,包括 Ruby 在内的所有编程语言都遵循 boolean algebra rules 表示相同条件的表达方式有很多种。
x != y
!(x == y)
!!(x != y)
这也在其他领域发挥作用,例如:
!x && !y
!(x || y)
正如其他人指出的那样,在使用 ==
比较器 而不是 =
assignment
运算符时要非常小心。
Ruby编程语言中的if !variable == 10 {...}
和if variable != 10 {...}
有什么区别?当然,这可以应用于所有其他语言。在第一种情况下我们只是否定条件,而在第二种情况下测试变量是否实际上不等于 10?
if variable != 10
等同于 unless variable == 10
而 !variable
正在否定变量,所以首先它被评估为一个表达式,然后被否定。
示例
variable = 5
variable != 10 # => true
!variable # => false (5 is evaluated to true, then negated)
!variable = 10 # => warning: found = in conditional, should be ==
在很大程度上,包括 Ruby 在内的所有编程语言都遵循 boolean algebra rules 表示相同条件的表达方式有很多种。
x != y
!(x == y)
!!(x != y)
这也在其他领域发挥作用,例如:
!x && !y
!(x || y)
正如其他人指出的那样,在使用 ==
比较器 而不是 =
assignment
运算符时要非常小心。