3

私は別の質問でこれを見たばかりで、コンマはタイプミスに違いないと思いました

[controller release], controller = nil; 

私はARCを使用しているので使用しませんでしreleaseたが、次のコードを自分でテストしたところ、コンパイルされて正常に実行されたことがわかりました。

NSObject *a = [NSObject new];
[a copy], a=nil;

カンマは、リストと同じタイプの複数の割り当てを区切るためにのみ使用されているという印象を受けました。

NSArray *a = @[@"1", @"two", /*etc*/]; 
int a, b, c, d;

実際の質問:

それは次のように単純ですか:コンマを使用してコマンドを区切ることができますか?他にルールはありますか?

4

2 に答える 2

7

コンマ演算子はC言語の構造です。

ウィキペディアから:

CおよびC++プログラミング言語では、コンマ演算子(トークンで表される)は、最初のオペランドを評価して結果を破棄し、次に2番目のオペランドを評価してこの値(および型)を返す2項演算子です。コンマ演算子は、C演算子の中で最も優先順位が低く、シーケンスポイントとして機能します。演算子としてのコンマトークンの使用は、関数呼び出しと定義、変数宣言、列挙型宣言、およびセパレータとして機能する同様の構造での使用とは異なります。

于 2012-11-19T11:16:37.880 に答える
0

コードでは、セミコロンの代わりにコンマが使用されています。,使用する場合、または例で使用する場合は、違いはありません;

詳細については、この質問を参照してください。CおよびC++でセミコロンの代わりにコンマを使用した場合の影響

于 2012-11-19T11:38:55.910 に答える