【发布时间】:2017-03-13 00:29:02
【问题描述】:
我突然想到,在 Swift 中处理子序列时,
func suffix(from: Int) 似乎与 dropFirst(_:) 相同(显然,对于长度为“10”的数组,您只需将输入值从“3”更改为“7”。)
只是重复一遍。所以:当然,对于一个说 长度为 10 的数组。例如,我的意思是func suffix(from: Int) 带有“2”与dropFirst(_:) 带有“8” 相同。
类似upTo / through 似乎与dropLast(_:) 相同
除了方便还有什么区别?
(可能在错误条件、性能或?)
我想知道,事实上,在 Swift 内部,一个或另一个是否只是通过调用另一个来实现的?
【问题讨论】:
-
看来他们最终都调用了下标方法:github.com/apple/swift/blob/…
-
@JoeBlow 确实如此——the subscript method of
Collectionthat takes aRange<Self.Index>input 返回一个SubSequence。 -
@JoeBlow 不,
suffix(from:)也返回一个SubSequence -
ArraySlice<Element>是Array<Element>的SubSequence@JoeBlow :)
标签: swift swift3 subsequence