Swift的操场或控制台应用程序中的以下代码:
let letters = ["A","B","C"] letters.filter({ (x : String) -> Bool in println("PRINT: \(x)") return true })
打印出来
PRINT: A PRINT: B PRINT: C PRINT: A PRINT: B PRINT: C
为什么这两次迭代?
最可能的过滤器被实现以首先计数它需要存储的元素的数量,然后,在使用该数字来分配新阵列的存储空间之后,循环再次复制他需要保存的元素.
如果总是返回false,它只循环一次,这意味着如果结果为空,则优化第二个循环.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。