1
291
你可以简单地使用
|
2
27
我认为你已经回答了你自己的问题——如果你从别人那里得到奇怪的表情,那么使用更明确的选择可能更安全。 如果你需要评论它,那么你最好用更详细的版本替换它,而不是让人们首先问这个问题。 |
3
16
我发现我有很多相似的对话。一方面,你有一个紧凑、高效的方法来实现你的目标。另一方面,您的团队中的其他人可能不理解您所拥有的东西,这使得将来很难维护它。 我的一般规则是询问所使用的技术是否是期望程序员了解的合理技术。在这种情况下,我认为期望程序员知道如何使用布尔运算符是合理的,所以在if语句中使用xor是可以的。 举个不太好的例子,使用XOR交换两个变量,而不使用临时变量。这是一个我不希望每个人都熟悉的技巧,所以它不会通过代码审查。 |
4
14
我想如果你评论的话没关系,比如
|
5
8
您可以始终将其包装在一个函数中,为其提供一个详细的名称:
但是,在我看来,对于那些不知道^操作员是干什么的人来说,用谷歌快速搜索并不难。第一次之后就不难记住了。因为您要求其他用途,所以通常使用xor进行位屏蔽。 你也可以 use XOR to swap the values in two variables without using a third temporary variable .
|
6
6
我最近在工作中的一个JavaScript项目中使用了一个XOR,并且
最后添加了7行评论
解释发生了什么。在这种情况下使用XOR的理由是(
最后,这有点过分了,但我还是想把它放在里面,就像复活节彩蛋一样。 |
7
5
imho此代码可以简化:
|
8
5
考虑到代码的清晰性,我的观点是在布尔检查中使用XOR不是XOR位运算符的典型用法。根据我的经验,Java中的位XOR是
典型地
用于实现掩码
This Vipan Singla的文章更详细地解释了使用案例。 如果您需要像在示例中那样使用位异或,请说明为什么要使用它,因为它可能要求即使是位识字的观众也要停下来了解您为什么要使用它。 |
9
-1
如果使用模式证明了这一点,为什么不呢?虽然你的团队不能马上识别操作员,但他们可以。人类一直在学习新词。为什么不在编程中呢? 我唯一要注意的是“^”没有第二个布尔检查的短路语义。如果您真的需要短路语义,那么静态Util方法也可以工作。
|
10
-1
我个人更喜欢“boolean1^boolean2”的表达,因为它简洁。 如果我在你的情况下(在一个团队中工作),我会妥协,将“boolean1^boolean2”逻辑封装在一个具有描述性名称的函数中,例如“isdifferent(boolean1,boolean2)”。 例如,不使用“boolean1^boolean2”,而是像这样称为“isdifferent(boolean1,boolean2)”:
您的“IsDifferent(boolean1,boolean2)”函数如下:
当然,这个解决方案需要使用一个表面上无关的函数调用,它本身需要经过最佳实践审查,但它避免了冗长(和丑陋)的表达式”(boolean1&&!布尔2)(布尔2&&!“BuloLang1”! |
11
-3
!=可以比较两个变量。不过,如果进行多次比较,这是行不通的。 |
12
-3
对我来说比
|
13
-3
作为位运算符,XOR比任何其他替换它的方法都快得多。因此,对于性能关键和可扩展的计算,XOR是必不可少的。 我个人的主观看法是:绝对禁止出于任何目的使用平等。=)对于布尔值。使用它表明缺乏基本的编程伦理和基本原理。任何让你困惑的人都应该被送回布尔代数的基础知识(我想在这里写“信仰之河”)。 |
Luple · gles glsl逐位操作问题 6 年前 |
Dhiraj · Javascript-解析十六进制值 6 年前 |
limitless · 数据二进制表示的位运算 6 年前 |
Mr. Who · python 2.7上的and逻辑运算[重复] 6 年前 |
gnzg · 在本例中,为什么逐位运算符或截断值?[副本] 7 年前 |
Cash- · 用位运算符解密隐藏消息 7 年前 |