使用xor运算符进行布尔检查是否是好习惯?
我个人喜欢独占或^
,操作符,因为它的简洁性在布尔检查的上下文中是有意义的。 我更喜欢写作
if (boolean1 ^ boolean2)
{
//do it
}
比
if((boolean1 && !boolean2) || (boolean2 && !boolean1))
{
//do it
}
但是我经常会从其他有经验的Java开发人员(不仅仅是新手)中感到困惑,有时还会评论它应该如何才能用于按位操作。
我对使用^
运算符的最佳实践感到好奇。
你可以简单地使用!=
来代替。
我认为你已经回答了你自己的问题 - 如果你从人们看起来很奇怪,用更明确的选择去做可能更安全。
如果你需要对它进行评论,那么你可能会更好地用更复杂的版本替代它,而不是让人们首先提出问题。
我发现我有很多类似的谈话。 一方面,你有一个实现你的目标的紧凑,高效的方法。 另一方面,你有其他的团队可能不理解的东西,这使得未来很难维护。
我的一般规则是询问所使用的技术是否可以期望一般程序员知道。 在这种情况下,我认为期望程序员知道如何使用布尔运算符是合理的,所以在if语句中使用xor是可以的。
作为一个不好的例子,可以使用xor交换两个变量而不使用临时变量。 这是一个我不希望每个人都熟悉的技巧,所以它不会通过代码审查。
链接地址: http://www.djcxy.com/p/9981.html上一篇: Is it good practice to use the xor operator for boolean checks?