2017-01-25 10 views
1

ビット演算では、私はここで間違ってやっているのかわからブール値に変換できないではありませんが、ここでは破壊だ些細なコードは次のとおりです。スウィフト3:Intが

if 10 & (1<<18) { 
    return 
} 

これは私'Int' is not convertible to 'Bool'

を与えるとは何ですか違う?

if (x != 0) { } 

あなたはスウィフトのboolean条件をテストする必要があります。本当に非ゼロチェックであなたが書くことができますCとは異なり

答えて

9

...

if (x) { } 

...。

if 10 & (1<<18) != 0 { 
    return 
} 
+1

そして、この場合には、それが真実ではありませんし、コンパイラは、おそらく存在のうち、全体 'if'文を最適化します:あなたの声明に!= 0を追加します。 – rmaddy