一个||是什么意思两个函数调用之间 喜欢
{
//some code
return Find(n.left,req)||Find(n.right,req);
}
http://www.careercup.com/question?id=7560692
有人可以帮助我理解。非常感谢提前。
答案 0 :(得分:1)
这意味着如果两个函数之一为真(或两者都是),则返回true。
取决于编程语言,该方法调用Find(n.left,req) - >如果是真的 - 返回true。如果它为假,则调用Find(n.right,req)并返回其布尔值。
答案 1 :(得分:0)
它表示逻辑中的OR运算符。
如果Find(...
中至少有一个返回true
,则当前函数的结果将为true
。
答案 2 :(得分:0)
return Find(n.left,req)||Find(n.right,req);
表示首先执行 {Find(n.left,req)} ,如果返回true则返回true或
执行第二次查找返回值如果返回true,则返回true,否则返回false。
答案 3 :(得分:0)
在Java(和C和C#)中||意思是“懒惰”或“懒惰”。单笔|也意味着“或”,但操作略有不同。
要计算|| b,计算机会计算a的真值(真或假),如果a为真,则返回值true 而不必费心计算b ,因此单词“懒”。只有当a为假时,它才会检查b是否为真(如果a或b为真,则检查b)。
要计算a | b,计算机先计算出a和b的值,然后一起“ors”得到答案。
“懒或”||效率更高,因为它有时根本不需要计算b。您可能想要使用| b的唯一原因是,如果b实际上是一个函数(方法)调用,并且由于该方法的某些副作用,您希望确保它只执行一次。我个人认为这种糟糕的编程技术,并且在极少数情况下我希望b总是被显式计算我明确地这样做然后使用懒惰或。
例如,考虑一个返回布尔值的函数或方法foo()。而不是
布尔值x = a | foo(某事);
我会写
boolean c = foo(something); 布尔值x = a || c;
它只显式地调用foo()一次,所以你知道发生了什么。
更好的编程实践,恕我直言。事实上,最好的做法是彻底消除foo()中的副作用,但有时这很难做到。
如果您使用懒惰或||考虑你评估它的顺序。如果a很容易计算并且通常是真的,|| b将比b || a更有效,因为大多数情况下a的简单计算都是需要的。相反,如果b通常是假的并且难以计算,则b || a将不比a | b更有效。如果a或b中的一个是常量而另一个是方法调用,则应该使用常量作为第一项a || foo()而不是foo()|| a作为方法调用将始终比使用a更慢简单的局部变量。
希望这有帮助。
彼得韦伯