我想创建一个可以接受两个参数的函数,根据输入的类型,它应该执行二进制操作(例如'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/

10-11 21:35