我正在通过 Apple 提供的书籍学习 Swift。在闭包部分,我注意到这三种向排序方法添加闭包的方法会产生不同的迭代次数来对数组进行排序。
let names = ["chris", "alex", "eva", "barry", "daniella"]
let reverse1 = names.sort({ (s1: String, s2: String) -> Bool in
return s1 > s2
})
let reverse2 = names.sort( { (s1: String, s2: String) -> Bool in return s1 > s2 })
let reverse3 = names.sort({ s1, s2 in s1 > s2 })
这是一个错误吗?因为 reverse1
和 reverse2
唯一不同的是换行符。
最佳答案
闭包在每个场景中执行 9 次,第 10 次是打印 reverse1
,reverse2
等...如果您使用相同的闭包,但不是内联,它将打印与第一种情况完全相同:
所以它更像是一行被执行了多少次,如果你看一下由 ;
分隔的简单的一行声明:
关于arrays - Swift 内联闭包错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34715199/