【问题标题】:Why Boolean type cannot do bitwise operation in swift为什么布尔类型不能快速进行按位运算
【发布时间】:2015-11-13 02:17:55
【问题描述】:

如题,为什么位运算符在swift中不能应用于布尔类型,哪种swift数据类型可以与位运算符一起使用?

【问题讨论】:

    标签: swift boolean bitwise-operators


    【解决方案1】:

    整数是带有位的整数,所以所有整数类型都可以进行按位操作,正如您仅通过查看标题就可以很容易地看到的那样;例如,这里是按位与:

    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
    

    【讨论】:

      猜你喜欢
      • 2021-04-15
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      • 1970-01-01
      • 2021-09-26
      相关资源
      最近更新 更多