下面是answer关于如何为 Int
数字添加幂运算符的原始问题:
infix operator ^^ { associativity left precedence 160 }
func ^^ (radix: Int, power: Int) -> Int {
return Int(pow(CGFloat(radix), CGFloat(power)))
}
如何概括这一点,使其适用于 Double
、Float
和 Int
?
最佳答案
你不能“概括”它。您必须分别为每种类型实现它。
如果您查看 Swift header ,您会发现这正是 Swift 本身对内置运算符(例如 +
)所做的事情。没有“通用”+
函数;每种数字类型都有一个 +
函数。
因此:
infix operator ^^ { associativity left precedence 160 }
func ^^ (radix: Int, power: Int) -> Int {
return Int(pow(CGFloat(radix), CGFloat(power)))
}
func ^^ (radix: Double, power: Double) -> Double {
return Double(pow(CGFloat(radix), CGFloat(power)))
}
// ... and so on for as many types as you like ...
关于Swift:通用幂函数作为中缀运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31464953/