4
在Swift中,我明白「let」定義了一個常量。沒問題。所以「讓foo = 42」和「let foo:Int」是有道理的。但我看到幾個簡單的「讓foo」沒有賦值或類型規範的例子。例如「case bar(let foo):...」Swift:case foo(let bar):沒有類型或任務?
「let foo」本身在這樣的代碼中究竟發生了什麼?
在Swift中,我明白「let」定義了一個常量。沒問題。所以「讓foo = 42」和「let foo:Int」是有道理的。但我看到幾個簡單的「讓foo」沒有賦值或類型規範的例子。例如「case bar(let foo):...」Swift:case foo(let bar):沒有類型或任務?
「let foo」本身在這樣的代碼中究竟發生了什麼?
此表示法用於綁定枚舉的關聯值。
藉此例如:
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.None
與nil
相同。
你可以顯示和可執行的例子嗎? – Alexander
代碼中的某處會有一個case case聲明,如'case bar(Int)' –