我想创建一个可以接受两个参数的函数,根据输入的类型,它应该执行二进制操作(例如'int'简单加法,对于字符串,它应该连接等…)并返回结果。我得到的错误是“二进制运算符“+”不能应用于以下方法的两个“T”操作数
func commonAdd <T>(paramA:T,paramB:T)->T
最佳答案
可能的方法。
1)可添加协议
您定义了一个Addable
协议。
protocol Addable {
func add(other:Self) -> Self
}
2)commonAdd功能
接下来你定义你的函数是这样的
func commonAdd <T: Addable>(paramA:T,paramB:T) -> T {
return paramA.add(paramB)
}
3)使Int符合Addable
接下来,您选择一个类型并使其符合
Addable
extension Int: Addable {
func add(other: Int) -> Int {
return self + other
}
}
4)使用
现在您可以在
Int
中使用您的函数。commonAdd(1, paramB: 2) // 3
更多
您应该重复步骤3,使函数中要使用的每种类型都
Addable
。关于swift - 通用加法函数Swift,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35429007/