swift 中 Array 的 func drop(while) 无法正常工作

-1 swift

在 Xcode 11.3 或 12.2 示例代码中:

let numbers = [1, 2, 3, 4, 5, 6]

let dropSlices = numbers.drop {
    $0 > 3
}
print(dropSlices)
Run Code Online (Sandbox Code Playgroud)

发现 dropSlices 是 [1, 2, 3, 4, 5, 6]

dropSlices 应该跳过所有大于 3 的项目,应该是 [1, 2, 3]

Leo*_*bus 6

No.drop(while: predicate)将在满足条件且第一个元素不成功时删除集合元素。因此,条件失败后不会删除任何元素。如果您想迭代整个集合,您应该filter改用或使用 mutating 方法removeAll(where: predicate)