难以掌握扩展特定类型/类型的Range
的语法。例如,如果我只想扩展Range<Double>
或Range<Int>
或两者。
答案 0 :(得分:2)
你不能直接。这是Swift目前缺少的功能。你可以使用伪协议解决它:
<li><a href="{{ url('login') }}">Iniciar sesión</a></li>
此处protocol _Int {}
extension Int: _Int {}
extension CountableClosedRange where Bound: _Int {
var sum: Int {
// These forced casts are acceptable because
// we know `Int` is the only type to conform to`_Int`
let lowerBound = self.lowerBound as! Int
let upperBound = self.upperBound as! Int
let count = self.count as! Int
return (lowerBound * count + upperBound * count) / 2
}
}
print((1...100).sum) //5050
或FloatingPoint
协议也可能有用。
答案 1 :(得分:1)
我有类似的问题,但其他解决方案不起作用。这样做了
extension CountableClosedRange where Bound: Integer, Bound == Int {
...
}
只需使用
extension CountableClosedRange where Bound == Int {
...
}
在编码(代码完成)方面运行良好,但在编译期间导致了分段错误11。