Paul Hudson解释了如何将Swift Array
拆分为his article中的块。它是这样的:
extension Array {
func chunked(into size: Int) -> [[Element]] {
return stride(from: 0, to: count, by: size).map {
Array(self[$0 ..< Swift.min($0 + size, count)])
}
}
}
,可以这样使用:
let numbers = Array(1...100)
let result = numbers.chunked(into: 5)
我想知道是否可以推广该算法以使其适用于任意集合/序列,尤其是String
。我考虑过将此算法应用于协议Collection
或Sequence
...
有什么想法吗?