我正在使用一个教程,它有一个这样的条件:
if Restaurant.method1
puts "XXX"
elsif Restaurant.method2
puts "YYY"
end
这两种方法都返回 bool 值 true
或 false
。同样,对于变量,我也看到过类似的东西:
if x
puts "XXX"
else
puts "YYY"
end
我想知道考虑到没有相等运算符 (==
) 或赋值运算符 (=
),您到底在检查什么?一定有某种可能被 Ruby 的简单性所隐藏的相等性检查,因为我在我的脑海中逻辑地思考这个,“If x”和“If Restaurant.method”都没有任何意义,因为没有某种检查的条件。
最佳答案
这是编程中的通用范例,而不是 Ruby 抽象。您正在检查某事是否真实。特别是在 ruby 中,除了 false
和 nil
之外,一切都是真实的。如果您想对此进行测试,请在您的控制台中自行尝试:
!!1 # => true
!!0 # => true
!![] # => true
!!{} # => true
...等等,而
!!false # => false
!!nil # => false
重要说明:这仅适用于 Ruby。其他语言有不同的规则。例如,在某些语言中 0
是假的。在学习一门新语言时尽早学习这些内容很重要。
关于ruby - 对于 Ruby bool 值,如果没有相等语句,您要检查什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40476323/