在Swift中,是否有一种聪明的方法可以使用数组上的高阶方法返回前5个对象?

推荐答案

到目前为止,获取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.

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

Swift相关问答推荐

Accelerate的SparseMultiply随机崩溃,EXC_BAD_ANCE

Swift Tree实现中的弱var

如何在Swift 中创建移动的uil标签?

如何让ScrollView缩小到合适的大小,并在没有黑客攻击的情况下占用最小空间

SwiftUI同心圆,通过逐渐出现来显示进度

异步/等待函数的XCTAssertThrowsError

从`compactMap()`闭包返回`nil`未通过结果类型判断

Xcode创建GitHub仓库,但未推送所有文件

TabView 无法在屏幕上正确显示

ForEach within List:模式的好处?

如何在不提交到应用store 的情况下在本地运行我的应用

从 Swift Vapor Server 中调用 ShazamKit

`@available` 属性在 macOS 版本上被错误地限制

符合协议要求委托变量在 ios13 中可用

如何在 SwiftUI 中实现 PageView?

如何在 iOS Swift 中进行多线程、并发或并行?

UITableViewCell 不显示 detailTextLabel.text - Swift

使用相机进行人脸检测

swift 中的@property/@synthesize 类似功能

如何在 Swift 中从字符串创建类的实例