swift - 如何迭代有序集?

标签 swift sorting set

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

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

但是编译器报错

'Set' does not has a member named 'sort'

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

最佳答案

如果您使用的是 Xcode 6.3,则您正在阅读错误版本的 iBook。本书目前有两个版本。

  1. The Swift Programming Language
  2. The Swift Programming Language (Swift 2 Prerelease)

前者包含使用 Swift 1.2 的示例,该示例随 Xcode 6.3 一起提供,而后者将这些示例转换为 Swift 2,后者需要 Xcode 7。

对于您提供的代码,Apple 提供了非预发行书中的以下示例。

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

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

关于swift - 如何迭代有序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31498259/

相关文章:

ios - 如何测试 UIControlEvents 是否已被触发

ios - 使用 xibs 在运行时创建 View Controller

python - 使用长度和字母顺序对列表进行排序

php - 寻找最好的 PHP 嵌套集类(不包括 PEAR 类)

c# - 速记访问器和修改器

javascript - 寻找 javascript getter/setter 等效项。不会产生警告

IOS Swift 如何在用户滚动时暂停视频

ios - 如何将 CALayer 的 contentGravity 变量设置为 'resizeAspectFill' ?

sorting - 为什么 STL unordered_map 和 unordered_set 不能通过 STL 算法排序?

arrays - 如何使用 Swift 显示数组的唯一元素?