实例方法
partition(by:)
对集合的元素重新排序,使得与给定谓词匹配的所有元素都在所有不匹配的元素之后。
声明
mutating func partition(by belongsInSecondPartition: (Self.Element) throws -> Bool) rethrows -> Self.Index
返回值
重新排序的集合中与 belongsInSecondPartition
匹配的第一个元素的索引。如果集合中没有元素匹配 belongsInSecondPartition
,则返回的索引等于集合的 endIndex
。
参数
belongsInSecondPartition
用于对集合进行分区的谓词。所有满足这个谓词的元素都排在所有不满足它的元素之后。
详述
对集合进行分区后,有一个枢轴索引 p
,其中 p
之前的任何元素都不满足 belongsInSecondPartition
谓词,而 p
或之后的每个元素都满足 belongsInSecondPartition
。此操作不能保证稳定,因此分区内元素的相对顺序可能会发生变化。
在以下示例中,数字数组由匹配大于 30 的元素的谓词进行分区。
var numbers = [30, 40, 20, 30, 30, 60, 10]
let p = numbers.partition(by: { $0 > 30 })
// p == 5
// numbers == [30, 10, 20, 30, 30, 60, 40]
numbers
数组现在排列在两个分区中。第一个分区 numbers[..<p]
由不大于 30 的元素组成。第二个分区 numbers[p...]
由 are
大于 30 的元素组成。
let first = numbers[..<p]
// first == [30, 10, 20, 30, 30]
let second = numbers[p...]
// second == [60, 40]
请注意,两个分区中元素的顺序发生了变化。也就是说,40
在原始集合中出现在 60
之前,但是在调用 partition(by:)
之后,60
出现在 40
之前。
可用版本
iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+
相关用法
- Swift EmptyCollection prefix(upTo:)用法及代码示例
- Swift EmptyCollection prefix(_:)用法及代码示例
- Swift EmptyCollection prefix(through:)用法及代码示例
- Swift EmptyCollection first(where:)用法及代码示例
- Swift EmptyCollection index(_:offsetBy:limitedBy:)用法及代码示例
- Swift EmptyCollection starts(with:)用法及代码示例
- Swift EmptyCollection sorted(by:)用法及代码示例
- Swift EmptyCollection dropFirst(_:)用法及代码示例
- Swift EmptyCollection enumerated()用法及代码示例
- Swift EmptyCollection sort()用法及代码示例
- Swift EmptyCollection suffix(_:)用法及代码示例
- Swift EmptyCollection filter(_:)用法及代码示例
- Swift EmptyCollection shuffle()用法及代码示例
- Swift EmptyCollection shuffled(using:)用法及代码示例
- Swift EmptyCollection shuffle(using:)用法及代码示例
- Swift EmptyCollection randomElement(using:)用法及代码示例
- Swift EmptyCollection allSatisfy(_:)用法及代码示例
- Swift EmptyCollection reverse()用法及代码示例
- Swift EmptyCollection forEach(_:)用法及代码示例
- Swift EmptyCollection shuffled()用法及代码示例
- Swift EmptyCollection lastIndex(where:)用法及代码示例
- Swift EmptyCollection lastIndex(of:)用法及代码示例
- Swift EmptyCollection reversed()用法及代码示例
- Swift EmptyCollection firstIndex(where:)用法及代码示例
- Swift EmptyCollection elementsEqual(_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 EmptyCollection partition(by:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。