我想要一个可以在两个值上使用加号运算符的泛型函数。
class funccalc {
func doAdd<T>(x:T,y:T) -> T {
return x + y
}
}
let a = funccalc()
println(a.doAdd(1, y: 4))
println(a.doAdd(23.54, y:200))
我收到一个错误 return x + y
是我遵循的建议在这个答案的唯一选择:https://stackoverflow.com/a/24047239/67566,并创建自己的协议作为Int
和String
将定义操作?
您是否尝试过使用该协议AdditiveArithmetic
?
https://developer.apple.com/documentation/swift/additivearithmetic
看起来就是您要找的东西。该协议具有以下方法:
static func + (Self, Self) -> Self
使用该协议,您的方法将变为:
class funccalc {
func doAdd<T: AdditiveArithmetic>(x:T,y:T) -> T {
return x + y
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句