swift中Array的funcdrop(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]
回答
No.drop(while: predicate)
将在满足条件且第一个元素不成功时删除集合元素。因此,条件失败后不会删除任何元素。如果您想迭代整个集合,您应该filter
改用或使用 mutating 方法removeAll(where: predicate)
。