要说的是,要做的事有什么区别呢?

要说的是,要做的事有什么区别呢?

我一直用||(两个管道)在OR表达式中,包括C#和PHP。偶尔我会看到一根管子被使用:|..这两种用法有什么区别?在使用一种或另一种时是否有任何注意事项?或者它们是可互换的?



白衣染霜花
浏览 380回答 3
3回答

LEATH

就像&和&&操作符,双操作符是“短路”操作符.例如:if(condition1&nbsp;||&nbsp;condition2&nbsp;||&nbsp;condition3)如果条件1为真,则将不检查条件2和3。if(condition1&nbsp;|&nbsp;condition2&nbsp;|&nbsp;condition3)这将检查条件2和3,即使1已经为真。由于您的条件可能是相当昂贵的功能,您可以通过使用它们获得良好的性能提升。有一个很大的警告,NullReference或类似的问题。例如:if(class&nbsp;!=&nbsp;null&nbsp;&&&nbsp;class.someVar&nbsp;<&nbsp;20)如果类为空,则if-语句将在class != null都是假的。如果您只使用&,它将尝试检查class.someVar你得到一个很好的NullReferenceException..使用or-操作符可能不是什么陷阱,因为不太可能触发一些不好的东西,但是要记住这一点。从来没有人用过单曲&或|运算符,除非您有一个设计,其中每个条件都是必须执行的函数。听起来像设计的味道,但有时(很少)它是一种干净的方式来做事情。这个&运算符执行“运行这3个函数,如果其中一个函数返回false,则执行Else块”,而|“只有在没有人返回false的情况下才运行Else块”-可能很有用,但正如所说,这通常是一种设计味。第二次使用|和&接线员:按位操作.

MMMHUHU

\x是逻辑或运算符。听起来你基本上知道那是什么。它用于条件语句,如if、while等。condition1 || condition2如果条件1或条件2为真,则计算为true。x是按位或运算符。它用来操作两个数字。您单独查看每个数字的每个位,如果其中一个位至少在其中一个数中为1,则产生的位也是1。以下是几个例子:A = 01010101B = 10101010A | B = 11111111A = 00000001B = 00010000A | B = 00010001A = 10001011B = 00101100A | B = 10101111希望这是有意义的。因此,为了回答最后两个问题,除了“知道这两个操作符之间的区别”之外,我不会说任何警告。它们是不可互换的,因为它们做的是两件完全不同的事情。

萧十郎

一种是“按位或”。10011 b\x{e76f}01000b=>11011b另一种是逻辑或。真或假=>真
打开App,查看更多内容
随时随地看视频慕课网APP