【发布时间】:2021-05-08 00:08:21
【问题描述】:
我有一个“固定”的辅助函数,例如:
public extension Comparable {
func clamped(_ low: Self, _ high: Self) -> Self {
return min(max(self, low), high)
}
}
我觉得这写起来不方便(与 Swift 内置的 min/max 全局函数相比),并且想使用方法。我试过了
// global function
public func CLAMP(_ val: Comparable, _ low: Comparable, _ high: Comparable) -> Comparable {
return min(max(val, low), high)
}
我理解这是因为 Comparable 是一个泛型协议,没有泛型就不是完整的类型,因此不能用作参数。
有没有办法解决这个问题?谢谢!
【问题讨论】:
-
没有“通用协议”
-
@LeoDabus blog.bobthedeveloper.io/…