2015-07-19 113 views
2

我使用的Xcode 6.3,下面是書中的代碼雨燕編程語言:如何迭代一個有序集合?

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

但是,編譯器報告的錯誤

「設置」不具有成員命名爲'sort'

Apple在Xcode 6.4中添加了sort()Set,還是我以錯誤的方式使用它?

回答

2

如果您使用的是Xcode 6.3,則您正在閱讀錯誤版本的iBook。這本書目前有兩個版本可用。

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

前者包含使用夫特1.2,附帶的Xcode 6.3實施例,而後者會將這些實施例以夫特2,這需要的Xcode 7.

在提供代碼的情況下,Apple提供了非預發佈書中的以下示例。

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

其中採用夫特1的全球sorted()函數,它(以及全局sort()功能)已在夫特2被去除。在夫特2,這兩種全局函數已被替換經由聲明sort()實例方法協議擴展。

2

這裏是一個快速的比較:

夫特2

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

夫特1.2

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

爲更多的文檔查看Collection Types