如何之间的空间。和属性名称有效吗?

时间:2013-03-29 06:33:51

标签: objective-c

我犯了一个意外的错误,发现它仍然有效。我只是在这里的视图上重新创建它来演示。忽略我使用的属性和我正在分配的值。

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

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

编译器如何看待这个并且好了?

1 个答案:

答案 0 :(得分:4)

因为在C和Objective-C中,令牌之间的空格并不重要。解析源文本时,编译器会反复调用lexer(并builds an abstract data structure表示源代码)。词法分析器函数只对非空格标记感兴趣(有一些偏差,但这种观察结果往往是正确的),然而你组织代码,

object.member

object .member

object. member

object . member

将被识别为相同的令牌序列:<ident> <memberof> <ident>