我想为实现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
}
}
}
答案 0 :(得分:4)
Self
是采用该协议的类型的替身:
extension Comparable {
func constraintBetween(a: Self, b: Self) -> Self {
if self < a {
return a
} else if self > b {
return b
} else {
return self
}
}
}