【发布时间】:2015-11-13 02:17:55
【问题描述】:
如题,为什么位运算符在swift中不能应用于布尔类型,哪种swift数据类型可以与位运算符一起使用?
【问题讨论】:
标签: swift boolean bitwise-operators
如题,为什么位运算符在swift中不能应用于布尔类型,哪种swift数据类型可以与位运算符一起使用?
【问题讨论】:
标签: swift boolean bitwise-operators
整数是带有位的整数,所以所有整数类型都可以进行按位操作,正如您仅通过查看标题就可以很容易地看到的那样;例如,这里是按位与:
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 中不是数字类型;布尔值是关于逻辑的,所以它们执行 logical 操作。例如,这里是逻辑与:
public func &&<T : BooleanType, U : BooleanType>(lhs: T, @autoclosure rhs: () throws -> U) rethrows -> Bool
【讨论】: