栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

| |之间有什么区别?和|| 还是运营商?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

| |之间有什么区别?和|| 还是运营商?

就像

&
and
&&
运算符一样,double运算符也是“短路”运算符。

例如:

if(condition1 || condition2 || condition3)

如果condition1为true,则不会检查条件2和3。

if(condition1 | condition2 | condition3)

即使1已经为真,这也会检查条件2和3。由于您的条件可能是非常昂贵的功能,因此可以通过使用它们来提高性能。

有一个很大的警告,NullReferences或类似的问题。例如:

if(class != null && class.someVar < 20)

如果class为null,则if语句将在

class != null
false
之后停止。如果仅使用&,它将尝试检查
class.someVar
并得到一个不错的
NullReferenceException
。对于Or-
Operator来说,这可能不是陷阱,因为您不太可能触发不良事件,但要记住这一点。

但是,没有人会使用单数

&
|
运算符,除非您设计的每个条件都是要执行的功能。听起来像是设计的气味,但有时(很少)是一种做事的干净方法。该
&
操作者“跑这3个功能,如果其中一个返回false,执行else块”,而
|
不会“只运行else块,如果没有回报假”
-可能是有用的,但正如所说,往往这是一个设计闻。

尽管有

|
and
&
运算符的第二种用法:按位运算。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/411990.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号