0

偶然の間違いを犯しましたが、まだ機能していることに気付きました。デモ用に、ここのビューで単純に再作成しました。使用したプロパティと割り当てている値を無視します。

self.view. frame = CGRectZero;
self.view. tag = 23;

NSLog(@"%@",NSStringFromCGRect(self.view.frame));
NSLog(@"%i",self.view.tag);

コンパイラはこれをどのように認識し、それで問題ありませんか?

4

1 に答える 1

4

C と Objective-C では、トークン間の空白は問題にならないためです。ソース テキストを解析するとき、コンパイラはレクサーを繰り返し呼び出します (そして、ソース コードを表す抽象データ構造を構築します)。レクサー関数は、空白以外のトークンにのみ関心があります (いくつかの逸脱がありますが、この観察は一般的に正しい傾向があります)。コードをどのように編成しても、

object.member

object .member

object. member

object . member

はすべて、まったく同じ一連のトークンとして認識されます: <ident> <memberof> <ident>.

于 2013-03-29T06:37:11.653 に答える