2016-03-23 23 views
2

私はそれがためにと使用)2とOR は意味がありません)objがIFせた場合 - 複数の条件

で何か
if let u = custom["u"] as? String || let url = custom["URL"] as? String 
{ 
// Do something here 
} 

答えて

-1

= 1 letの複数の条件を使用でき、代わりに

if let u = custom["u"] as? String, 
let url = custom["URL"] as? String { 
// Do something here 
} 
4

AND条件を使用する場合のみ、複数の条件を追加できます。

ORを使用すると、適切に設定された値がわからないため、正しく変数にアクセスできなくなります。

ANDテストでは、両方の変数が正しく作成されていることを確認しているので、そのタイプを確実に知ることができます。

あなたは、カンマ区切りで区切らテスト記述する必要があります:私は同意

if let u = custom["u"] where u == "testValue", 
    let url = custom["URL"] { 
    // Do something here 
} 
-1

whereキーワードを使用して、また

if let u = custom["u"], 
    let url = custom["URL"] { 
    // Do something here 
} 

は、あなたが直接あなたのif letブロックの後にいくつかの条件を追加することができますがuser3441734でWhtyあなたはそれをしたいですか?

if let u = custom["u"] as? String { 
    if let url = custom["URL"] as? 
    // Do something here 
    } 
} 

私はこのようにします。内部ブロックは、上記の条件が成立するときにのみ実行されます。

if let u = custom["u"] as? String { 
    // Call same method 
} 
if let url = custom["URL"] as? 
    // Call same method 
} 

このようにして、2つがチェックされ実行されます。

0

あなたのコレクションタイプがDictionaryであると仮定します。

あなたが本当にORを使用する場合:

if(custom.keys.contains("u") || custom.keys.contains["URL"]) { } 

しかし、すでに他の人はあなたがそれらのキーの値が必要な場合、あなたはまだ別々の2の場合を記述する必要があるため、本当に、意味がないこと、書きましたステートメント。

if let u = custom["u"] { 
    print("Value for u: \(u!)"); 
} 

if let url = custom["URL"] { 
    print("Value for URL: \(url!)"); 
}