2016-07-24 49 views
4

在Swift中,我明白「let」定義了一個常量。沒問題。所以「讓foo = 42」和「let foo:Int」是有道理的。但我看到幾個簡單的「讓foo」沒有賦值或類型規範的例子。例如「case bar(let foo):...」Swift:case foo(let bar):沒有類型或任務?

「let foo」本身在這樣的代碼中究竟發生了什麼?

+0

你可以顯示和可執行的例子嗎? – Alexander

+0

代碼中的某處會有一個case case聲明,如'case bar(Int)' –

回答

3

此表示法用於綁定枚舉的關聯值。

藉此例如:

let anOptionalInt: Int? = 15 

switch (anOptionalInt) { 
case .Some(let wrappedValue): 
    print(wrappedValue) 

case .None: 
    print("the optional is nil") 
} 

這工作,因爲Optional是一個枚舉。

let anOptionalInt: Optional<Int> = Optional.Some(15) 

有兩種情況:.Some.None第一個表達式可以作爲被寫入。在.Some的情況下,有一個關聯的值,稱爲Wrapped,而.None大小寫沒有關聯的值。其實Optional.Nonenil相同。

相關問題