更新: 这仅用于学习POP。我知道我们可以使用< +>运营商,但我想知道我错过了什么
我正在尝试创建一个swift泛型函数来添加两个元素: - 如果元素为数字,则只需添加它们。 - 如果元素是字符串,则连接它们。
这是我的代码:
protocol NumericType {
func +(lhs: Self, rhs: Self) -> Self
}
extension Double : NumericType {}
extension Float : NumericType {}
extension Int : NumericType {}
protocol Addable {
func addGenerically<T>(element1: T, element2: T) -> T
}
extension Addable where Self:NumericType {
func addGenerically<T:NumericType>(element1: T, element2: T) -> T {
return (element1) + (element2)
}
}
// This throws error: inheritance from non protocol, non class type strings
extension Addable where Self:String {
func addGenerically<T:String>(element1: T, element2: T) -> T {
return (element1) + (element2)
}
}
class MyVC: UIViewController{
override func viewDidLoad() {
super.viewDidLoad()
let n1 = Double(3.4)
let n2 = Double(3.3)
let n3 = Addable.addGenerically(n1, element2: n2)
}
任何想法如何完成并使用它?