一尘不染

如何在Swift中返回Array的前5个对象?

swift

在Swift中,是否有聪明的方法在Array上使用高阶方法来返回5个第一个对象?obj-
c的实现方式是保存索引,并通过循环递增数组递增索引直到索引为5并返回新数组。有没有办法做到这一点filtermap或者reduce


阅读 1577

收藏
2020-07-07

共1个答案

一尘不染

到目前为止,获取Swift数组的前N个元素的最简洁的方法是使用prefix(_ maxLength: Int)

let someArray = [1, 2, 3, 4, 5, 6, 7]
let first5 = someArray.prefix(5) // 1, 2, 3, 4, 5

这具有边界安全的好处。如果传递给您的计数prefix大于数组计数,则它将仅返回整个数组。

注意:注释中
所指出,Array.prefix实际上返回ArraySlice,而不是Array。在大多数情况下,这没有什么区别,但是如果您需要将结果分配给Array类型或将其传递给期望Array参数的方法,则需要将结果强制为Array类型:let first5 = Array(someArray.prefix(5))

2020-07-07