1
我的目的是:如何与范围一起工作?
我的第一个功能:
public func substringsOfLength(_ length: Int, inRange range: CountableClosedRange) -> Array<String>
{
...
}
我的第二个:
public func substringsOfLength(_ length: Int, inRange range: CountableRange) -> Array<String>
{
...
}
我怎样才能实现两者的功能之一?我知道范围是结构,所以我不能使用泛化范式。我也知道,CountableRanges符合RandomAccessCollection协议,并且它们的边界为Comparable,_Strideable和SignedInteger(Bound.Stride)。因此,我寻找一个通用的解决方案,对吧?
所以,我想这样的事情:
public func substringsOfLength<T: RandomAccessCollection>(_ length: Int, inRange range: T) -> Array<String>
{
...
}
我知道这里有其他协议缺少的,但我不知道该怎么跟他们具体化的范围。
你需要什么操作范围?它们都是“可以跨越的”。这不够吗? – Sulthan
当使用字符串时,'Range'是Swift 3中的自然类型。 –
@Sulthan我只需要访问下限和上限。 –