在如下的声明中:
if (valueA & valueB) != 99 { print("they don't equal 99") }
什么是&
运营商吗?我认为这意味着如果valueA和valueB都不等于99执行块.
然后|
在这个声明中做了什么:
if valueA != (99 | 0) { print("it doesn't equal 99") }
我认为这意味着如果valueA不等于99或0执行块.然而,我的假设似乎都不正确.
编写上述语句的正确方法是:
if valueA != 99 && valueB != 99 { print("it doesn't equal 99") }
似乎合乎逻辑的是,提出的第一个if语句将是一种非常简洁的编写方式,因为它缩短了编写的代码,并且如果不是更多,仍然是显式的.
这些都是位运算符,可以让你操作实际的数据位.
以下信息按原样从官方文档中复制:
按位AND运算符(&
)组合两个数字的位.它返回一个新数字,1
只有当1
两个输入数字中的位相等时才将其位设置为:
按位OR运算符(|
)比较两个数字的位.1
如果位1
在任一输入数中相等,则运算符返回一个新数字,其位设置为: