以下是关于如何为Int
数字添加幂运算符的原始问题的answer:
infix operator ^^ { associativity left precedence 160 }
func ^^ (radix: Int, power: Int) -> Int {
return Int(pow(CGFloat(radix), CGFloat(power)))
}
如何对此进行概括以使其适用于Double
,Float
和Int
?
答案 0 :(得分:0)
你不能"概括"它。你必须分别为每种类型实现它。
如果你查看Swift标题,你会发现这正是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 ...