所以我试图用一些我经常使用的方便的函数来扩展 Swift 的整数类型,但是我不清楚我应该扩展哪些协议。
例如,假设我想实现一个用于钳位值的函数(如果它小于最小值,则将其设置为该值,否则如果它大于最大值,则将其设置为该值)。我的第一个想法是做这样的事情:
extension Int {
func clamp(minimum:Int, maximum:Int) {
if self < minimum { return minimum }
if self > maximum { return maximum }
return self
}
}
有点简单的例子,但它说明了问题;如果我现在想把它称为 aUInt
那么我自然不能,所以我必须添加一个等价于UInt
,但这不适用于 aUInt16
等等。
我认为我也许可以在链上扩展一些东西,并改用泛型,但是IntegerType
似乎无法扩展诸如此类的协议。
那么,有没有更合适的地方可以放置我的扩展名?