2017-07-14 11 views
2

最近、if/letを使用してこのタイプのシナリオに遭遇しましたが、これはpostのおかげで何をするのか理解しています。私の理解では、の前のブロックが実行される前に両方の条件が満たされる必要があります。私は今、私は定期的な条件文でそれを見てきたポイントになってきた:カンマ区切りの条件と二重のアンパサンドを使用する条件の違い

if existingTextHasDecimalSeparator != nil, replacementTextHasDecimalSeparator != nil { 
    return false 
} else { 
    return true 
} 

上記を行うと、下に見られるように、単に&&を使用しての違いは何ですか?:

if existingTextHasDecimalSeparator != nil && replacementTextHasDecimalSeparator != nil { 
    return false 
} else { 
    return true 
} 
+0

AFAIK実際的な違いはありません。多くの場所でそうであるように、同じことをするための複数の方法があります。どちらか一方が使用されるべきときに、いくつかの標準が開発される可能性があります。それまでは、あなたはおそらくあなたが好きなことをすることができます。 – PeejWeej

答えて

1

をカンマは、オプションのブール条件に結合するとき、例えばif let a = a, a.isValid()ため&&一方、典型的なANDオペレータ

+2

はい、この場合、オプションのバインディングはありません。 –

1

がを使用して差があるように表示されませんされて使用されていますは、条件をグループ化し、カンマを使用します。私はこれまでのところ、オプションのバインドで使用されているのを見たことがありますが、次のスニペットがうまく動作するため、通常の条件でも機能します。

let bool1 = true; 
let bool2 = true; 

if bool1 , bool2 { 
    print("true"); 
} else { 
    print("false") 
} 
関連する問題