func后缀(来自:Int)似乎与dropFirst(_ :)完全相同(显然,在长度为“10”的数组中,您只需将输入值从“3”更改为“7”.)
只是重复一遍.所以:当然,对于一个长度为十的数组.我的意思是func后缀(来自:Int)与“2”将与dropFirst(_ :)与“8”相同,例如.
同样upTo / through似乎与dropLast(_ :)完全相同
除了方便之外还有什么区别吗?
(也许是在错误的条件,性能或?)
我想知道,事实上,在Swift中是否只是通过调用另一个来实现?
>由Collection
协议定义.
>从给定的起始Index
返回Subsequence
.
>记录O(1)的时间复杂度(你可以see its default implementation here).
>如果传递的索引超出范围,则运行时错误.
>由Sequence
协议定义.
>返回SubSequence
,其中从序列的头部删除了给定的最大元素数.
>记录的时间复杂度为O(n)*.虽然its default implementation实际上具有O(1)的时间复杂度,但这只是推迟了O(n)遍历删除元素直到迭代.
>如果输入的数字大于序列的长度,则返回空子序列.
*与所有协议要求记录的时间复杂性一样,符合类型可能具有较低时间复杂度的实现.例如,RandomAccessCollection
的dropFirst(_ :)方法将在O(1)时间内运行.
但是,当涉及到Array时,这些方法的行为恰好相同(除了处理超出范围的输入).
这是因为Array的Int类型的索引从0开始并按顺序计数到array.count – 1,因此意味着删除前n个元素的子序列是从索引n开始的相同子序列.
同样因为Array是RandomAccessCollection,两种方法都将在O(1)时间内运行.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。