2015-12-01 27 views
0

這兩個版本的相同代碼有什麼區別?他們完全相同嗎?如果是,爲什麼這種不必要的混淆語法?在Swift中的case語句中分配兩種方法

let x : Int? = 42 

if case let .Some(value) = x{ 
    print("here's an x for ya \(value)") 
} 

現在,讓我們繼續前進的讓進的括號:

if case .Some(let value) = x{ 
    print("here's an x for ya \(value)") 
} 

回答

2

其他例如:

enum E { 
    case A(Int, Bool?, Int, Double) 
} 

let e = E.A(4, true, -2, 2.4) 

現在你可以這樣做:

if case E.A(let n, .Some(let b), let m, let d) = e { 

} 

或者這樣:

if case let E.A(n, .Some(b), m, d) = e { 

} 

我不想輸入所有的let s,這讓人困惑。