方法名称开头的Bang(!)

时间:2014-02-22 05:08:05

标签: ruby prefix-operator

此代码示例中taking_damage方法之前的感叹号的目的是什么?

if warrior.health < 20 && !taking_damage?(warrior)
     warrior.rest!
end

3 个答案:

答案 0 :(得分:7)

它是布尔运算Negation,因此相当于Ruby关键字not

您可以阅读以下内容:

  

“如果战士的生命值低于20 ,那么战士服用   伤害然后战士必须休息。“

答案 1 :(得分:2)

它是一个否定运算符,它接受方法/变量的真实性并返回它的反面。

答案 2 :(得分:1)

此运算符也可用于将任何值转换为true和false(布尔值)。这是一个例子:

 > !nil
 => true 
 > !!nil
 => false