在`@`开始在Objective-C中声明之后是否允许使用空格?

时间:2012-07-13 18:56:43

标签: objective-c declaration

我正在研究Objective-C,我注意到,例如,类接口声明以@interface开头。很好,没有问题。因此,该文字表明@interface之间不允许有空格。但是,当我将以下简单示例传递给*.m文件中的GCC编译器时:

@ interface A
@ end

编译器无需投诉即可接受代码。任何人都可以指向我的参考方向,明确说明@ interface是否也被Objective-C规范认为是可接受的?除了问题前面提到的简单文本之外,我在Apple的2008年和2011年的文档中都没有发现任何方式。

提前致谢。

编辑:值得注意的是,Emacs根据标识符是否为关键字执行文本着色;关键字为蓝色,非关键字为黄色。 @interface颜色为蓝色,@ interface颜色为黄色。类似的行为发生在Vim。

1 个答案:

答案 0 :(得分:3)

Objective-C没有正式的规范(超出The Objective-C Programming Language)。绝对没有BNF风格的空白惯例定义。如果它编译,那就是我们必须“合法”的最接近的。许多语言都是如此。例如,Perl最好定义为“perl可执行文件不会拒绝的那些字符串。” (至少在我看来......)

那就是说,正确的风格是@interface没有空格。请参阅Defining a Class