我試圖在Swift 2中試驗遞歸枚舉,但是出現編譯錯誤。如何用Swift 2.0聲明遞歸枚舉
我開始試圖定義我自己的例子:
enum Tree {
case Empty
indirect case Node(value: Int, left: Tree, right: Tree)
}
但得到一個錯誤:「在一條線上連續聲明必須由分開」。
所以,我試圖從他們的WWDC15 什麼斯威夫特演示文稿的新蘋果自己的例子:
enum Tree<T> {
case Leaf(T)
indirect case Node(Tree, Tree)
}
但與此也同樣編譯錯誤。如果我創建了一個新的遊樂場並粘貼這些行,那麼會導致錯誤 - 請參閱截圖,或者如果在Xcode項目中使用相同的東西,請參閱其他截圖。
我正在使用Xcode 7.0。
爲什麼我連蘋果的例子都無法編譯?
Enums and cases can be marked indirect, which causes the associated value for the enum to be stored indirectly, allowing for recursive data structures to be defined.
下面的代碼工作在一個遊樂場:
如果我沒記錯的話,他們說,這是未來,但現在還沒有 – Juan
權,在談話Lattner提到,「間接」關鍵字沒有進入Beta 1(但即將推出) – fqdn