在 Swift 中,如何使用泛型扩展协议?
In Swift, How to extend a protocol with generic type?
我想为所有实现 Comparable 的 类 添加一个函数,例如 Int、Float、CGFloat。这是我报告错误的代码:
extension Comparable{
func constraintBetween<T: Comparable>(a:T , b: T) -> T{
if self < a {
return a
}else if self > b{
return b
}else{
return self
}
}
}
任何人都可以帮助解决问题吗?提前致谢!
Self
是采用协议的类型的替身:
extension Comparable {
func constraintBetween(a: Self, b: Self) -> Self {
if self < a {
return a
} else if self > b {
return b
} else {
return self
}
}
}
我想为所有实现 Comparable 的 类 添加一个函数,例如 Int、Float、CGFloat。这是我报告错误的代码:
extension Comparable{
func constraintBetween<T: Comparable>(a:T , b: T) -> T{
if self < a {
return a
}else if self > b{
return b
}else{
return self
}
}
}
Self
是采用协议的类型的替身:
extension Comparable {
func constraintBetween(a: Self, b: Self) -> Self {
if self < a {
return a
} else if self > b {
return b
} else {
return self
}
}
}