如何迭代排序集?

时间:2015-07-19 05:24:11

标签: swift sorting set

我正在使用Xcode 6.3,以下是The Swift编程语言一书中的代码:

var fav:Set=["cd","bsa","aft"]
for genre in fav.sort(){
   println("\(genre)")
}

但是编译器报告了错误

  

'Set'没有名为'sort'的成员

Apple是否在Xcode 6.4中将sort()添加到Set,还是我以错误的方式使用它?

2 个答案:

答案 0 :(得分:2)

如果您正在使用Xcode 6.3,那么您正在阅读错误的iBook版本。目前有两本版本可供使用。

  1. The Swift Programming Language
  2. The Swift Programming Language (Swift 2 Prerelease)
  3. 前者包含使用Swift 1.2的示例,后者附带Xcode 6.3,而后者则将这些示例转换为需要Xcode 7的Swift 2。

    如果是您提供的代码,Apple会从非预发行书中提供以下示例。

    for genre in sorted(favoriteGenres) {
        println("\(genre)")
    }
    

    使用Swift 1的全局sorted()函数,它(以及全局sort()函数)已在Swift 2中删除。在Swift 2中,这两个全局函数已被{替换{3}}通过协议扩展声明的实例方法。

答案 1 :(得分:2)

以下是一个快速比较:

Swift 2

var favoriteGenres: Set = ["Rock", "Classical", "Hip hop"]
for genre in favoriteGenres.sort() {
    print("\(genre)")
}

Swift 1.2

var favoriteGenres: Set = ["Rock", "Classical", "Hip hop"]
for genre in sorted(favoriteGenres) {
    println("\(genre)")
}

有关更多文档,请参阅Collection Types