2015-10-01 135 views

回答

3

即使你可以做到這一點,那些都是不一樣的。 enum是一個對象類型,如class。在您的第一個示例中,panDirection是Direction枚舉的實例。在你的第二個例子中,如果它可以編譯並運行,那麼panDirection最終將作爲枚舉本身(類型,而不是該類型的一個實例) - 這完全不是你想要的。

因此,你要做的是在行的中間聲明一個類型。你不能那樣做。您可以在哪裏聲明類型的規則非常清晰且非常嚴格。

但是,請注意,您可以聲明另一種類型或甚至純粹本地的類型,例如,在一個函數的代碼中。因此,例如,您可以臨時將類型聲明爲在函數內部傳遞數據的一種方式。堅果,但合法:

func myCoolFunction(up:Bool) { 
    enum Direction : String { 
     case Up 
     case Down 
    } 
    let dir : Direction = (up ? .Up : .Down) 
    print("user wants \(dir)") 
} 
0

不,枚舉類型必須另行申報,纔可以被用作一個變量的類型。