Ruby 否定表达
这两种说法有什么区别吗Ruby 否定表达,ruby,negation,Ruby,Negation,这两种说法有什么区别吗 ! (name == "bob") 及 在我看来,他们似乎做了同样的事情。如果有的话,它们有什么不同呢?在我能想到的任何例子中,它们都会返回相同的结果,但是放置可能会有帮助,但在我能想到的任何示例中,它们将返回相同的结果,但在检查其他内容(例如,!my_array.include?(“bob”)时,将!放在表达式前面可能会有帮助它们几乎是一样的 !(name==“bob”)调用两个方法!和=。您可以像name.==('bob')那样编写它。! name!=“bob”只
! (name == "bob")
及
在我看来,他们似乎做了同样的事情。如果有的话,它们有什么不同呢?在我能想到的任何例子中,它们都会返回相同的结果,但是放置
在检查其他内容(例如,!my_array.include?(“bob”)
时,表达式前面的code>可能会有帮助,但在我能想到的任何示例中,它们将返回相同的结果,但在检查其他内容(例如,!my_array.include?(“bob”)时,将!
放在表达式前面可能会有帮助
它们几乎是一样的
!(name==“bob”)
调用两个方法!
和=
。您可以像name.==('bob')那样编写它。!
name!=“bob”
只调用一个方法!=
name.!=(“bob”)
除非您重新定义!=
,否则您不必担心这两个选项。在大多数情况下,它们是相同的
下面是一个如何打破它的示例:
name = 'bob'
def name.!= s
true
end
name.!=('bob') # => true
name.==('bob').! # => false
您可能期望第一个结果为false
,因为左侧的'bob'
(变量name
)等于右侧的'bob'
,但事实并非如此,因为方法已重新定义。它们几乎相同
!(name==“bob”)
调用两个方法!
和=
。您可以像name.==('bob')那样编写它。!
name!=“bob”
只调用一个方法!=
name.!=(“bob”)
除非您重新定义!=
,否则您不必担心这两个选项。在大多数情况下,它们是相同的
下面是一个如何打破它的示例:
name = 'bob'
def name.!= s
true
end
name.!=('bob') # => true
name.==('bob').! # => false
您可能期望第一个结果为false
,因为左侧的'bob'
(变量name
)等于右侧的'bob'
,但事实并非如此,因为方法被重新定义。它是相同的。这就像询问5-1
或5+-1之间的区别一样
我们是在问性能问题(如果我们只是在讨论字符串还是不同的对象和实现,可能会产生差异)?…还是我们在讨论最终结果(除非!=
和=
方法没有按预期运行,否则它们是相同的)这是一样的。这就像问5-1
或5+-1
之间的区别是什么?我们是在问性能问题(这可能会有差异,这取决于我们是在谈论字符串还是不同的对象和实现)?…还是在谈论最终结果(除非#!=
和#=
方法没有按预期运行,否则它们是相同的)?