Objective-C では、カンマを文の区切りとして使用するとどうなりますか? 質問する

Objective-C では、カンマを文の区切りとして使用するとどうなりますか? 質問する

サードパーティのソースコードを見ていると、何度も新しい構文に遭遇します。基本的に、セミコロンの代わりにカンマで文を区切っています。コンパイルして動作しますが、何をしているのかわかりません。次のように見えます。

if(url)[url release], url = nil;

また、ifなしで使うこともあります

[url release], url = nil;

何が起きてる?

ベストアンサー1

C や C++ と同様に、コンマ演算子は左側のものを計算してから右側のものを計算します。式の全体的な値は右側の値です。基本的に、これにより 1 つの式で 2 つのことを行うことができます (左側の 1 つは、メソッド呼び出しや割り当てなどの副作用用であると考えられます)。はい、この構文は、関数呼び出しや変数宣言で使用される構文と多少曖昧です。

可能な場合は、複数のステートメントを含む正直なブロックを使用することを好みます。長くなりますが、最終的にはきれいになります。デバッグも簡単になります。

おすすめ記事