为什么Swift中的筛选器会重复收集两次?

为什么Swift中的筛选器会重复收集两次?,第1张

概述Swift的 *** 场或控制台应用程序中的以下代码: let letters = ["A", "B", "C"]letters.filter({ (x : String) -> Bool in println("PRINT: \(x)") return true}) 打印出来 PRINT: APRINT: BPRINT: CPRINT: APRINT: BPRIN Swift的 *** 场或控制台应用程序中的以下代码:
let letters = ["A","B","C"]letters.filter({    (x : String) -> Bool in    println("PRINT: \(x)")    return true})

打印出来

PRINT: APRINT: BPRINT: CPRINT: APRINT: BPRINT: C

为什么这两次迭代?

最可能的过滤器被实现以首先计数它需要存储的元素的数量,然后,在使用该数字来分配新阵列的存储空间之后,循环再次复制他需要保存的元素.

如果总是返回false,它只循环一次,这意味着如果结果为空,则优化第二个循环.

您可能希望将其作为一个错误,但它可能是“按设计工作”:毕竟,数组不是列表.

总结

以上是内存溢出为你收集整理的为什么Swift中的筛选器会重复收集两次?全部内容,希望文章能够帮你解决为什么Swift中的筛选器会重复收集两次?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1041312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存