Exponentiation operator in Swift

后端 未结 9 1174
天命终不由人
天命终不由人 2020-12-13 22:45

I don\'t see an exponentiation operator defined in the base arithmetic operators in the Swift language reference.

Is there really no predefined integer or float ex

9条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-13 23:26

    For anyone looking for a Swift 3 version of the ** infix operator:

    precedencegroup ExponentiationPrecedence {
      associativity: right
      higherThan: MultiplicationPrecedence
    }
    
    infix operator ** : ExponentiationPrecedence
    
    func ** (_ base: Double, _ exp: Double) -> Double {
      return pow(base, exp)
    }
    
    func ** (_ base: Float, _ exp: Float) -> Float {
      return pow(base, exp)
    }
    
    2.0 ** 3.0 ** 2.0    // 512
    (2.0 ** 3.0) ** 2.0  // 64
    

提交回复
热议问题