为什么布尔类型不能在swift中进行按位运算

时间:2015-11-13 02:17:56

标签: swift boolean bitwise-operators

作为标题,为什么按位运算符不能应用于swift中的布尔类型,哪种快速数据类型可以与按位运算符一起使用?

1 个答案:

答案 0 :(得分:2)

整数是带有位的整数,因此所有整数类型都可以进行按位操作,因为您只需查阅标题就可以自己看到;例如,这里是按位 - 和:

public func &(lhs: Int, rhs: Int) -> Int
public func &(lhs: UInt, rhs: UInt) -> UInt
public func &(lhs: Int64, rhs: Int64) -> Int64
public func &(lhs: UInt64, rhs: UInt64) -> UInt64
public func &(lhs: Int32, rhs: Int32) -> Int32
public func &(lhs: UInt32, rhs: UInt32) -> UInt32
public func &(lhs: Int16, rhs: Int16) -> Int16
public func &(lhs: UInt16, rhs: UInt16) -> UInt16
public func &(lhs: Int8, rhs: Int8) -> Int8
public func &(lhs: UInt8, rhs: UInt8) -> UInt8

Bool不是Swift中的数字类型;布尔值与逻辑有关,因此他们执行逻辑操作。例如,这里是逻辑 - 和:

public func &&<T : BooleanType, U : BooleanType>(lhs: T, @autoclosure rhs: () throws -> U) rethrows -> Bool