2017-04-12 7 views
7

タイトルのとおり、&&(AND)と,がSwiftで同じ結果を出した場合、これは、ログのみSwiftでは "&&"と "、"は同じですか?

let a = 5 
let b = 6 

if a<6, b>0 { 
    print("should be true") 
} 

if a<6, b<0 { 
    print("should be false") 
} 

if a>6, b>0 { 
    print("should be false") 
} 

if a>6, b<0 { 
    print("should be false") 
} 

::私は以下のコードをテストした

真でなければなりませんので、,の行動はただ&&のようなものです、私は修正していますか?

+0

'if'文には当てはまりますが、' return(a> 4、b <4) 'のようなコードを書くことはできませんので、2つは同一ではありません – XmasRights

+2

実際には* condition-list * 'ガード'の後、 'もしレット'と 'ガードレッツ' – vadian

答えて

11

これらは同じような状況で使用できますが、まったく同じであるとは限りません。

は考えてみましょう:

if (a && b) || c 

あなたは

if (a, b) || c 

でもa && b || cを書き込むことはできませんa, b || cは異なっています。

if a, bは、両方の式がtrueに評価されなければなら

if a { 
    if b { 
     ... 
    } 
} 

のようなものですが、彼らはまだ二つの別々の表現です。そこには&&は想像してはいけません。

なぜ,演算子が必要ですか?

オペレータは、任意のブール値とブール条件を組み合わせる必要があります。

if let a = a, a.isValid() { 

becuase &&はこのような状況で私たちを助けません。

関連する問題