swift - 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]
解决方案
No.drop(while: predicate)
将在满足条件且第一个元素未成功时删除集合元素。因此,条件失败后不会删除任何元素。如果你想迭代整个集合,你应该改用filter
mutating 方法removeAll(where: predicate)
。
推荐阅读
- spring-boot - 使用 spock 进行集成测试。在第一次测试之前加载上下文
- html - 更宽的元素作为孩子(css)
- sql-server - 选择语句嵌套查询
- sql - 替换 sqlite3 中的字符
- javascript - 未显示离子管道值
- php - php登录页面 - 当我插入有效数据时它不起作用,但是当我插入无效数据时它工作得很好
- javascript - 使用 npm prod 与 devq 进行编译
- c++ - 有没有办法避免以下代码中的内存泄漏?
- html - 网格布局 Internet Explorer 无法正常工作
- java - 我正在尝试使用 JAVA 从字符串中获取 URL