Swift 3扩展特定类型的范围

时间:2016-11-13 23:41:22

标签: swift foundation

难以掌握扩展特定类型/类型的Range的语法。例如,如果我只想扩展Range<Double>Range<Int>或两者。

2 个答案:

答案 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。