首页 > 解决方案 > swift中Array的func drop(while)无法正常工作

问题描述

在 Xcode 11.3 或 12.2 示例代码中:

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

let dropSlices = numbers.drop {
    $0 > 3
}
print(dropSlices)

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

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

标签: swift

解决方案


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


推荐阅读