我正在研究Objective-C,我注意到,例如,类接口声明以@interface
开头。很好,没有问题。因此,该文字表明@
和interface
之间不允许有空格。但是,当我将以下简单示例传递给*.m
文件中的GCC编译器时:
@ interface A
@ end
编译器无需投诉即可接受代码。任何人都可以指向我的参考方向,明确说明@ interface
是否也被Objective-C规范认为是可接受的?除了问题前面提到的简单文本之外,我在Apple的2008年和2011年的文档中都没有发现任何方式。
提前致谢。
编辑:值得注意的是,Emacs根据标识符是否为关键字执行文本着色;关键字为蓝色,非关键字为黄色。 @interface
颜色为蓝色,@ interface
颜色为黄色。类似的行为发生在Vim。
答案 0 :(得分:3)
Objective-C没有正式的规范(超出The Objective-C Programming Language)。绝对没有BNF风格的空白惯例定义。如果它编译,那就是我们必须“合法”的最接近的。许多语言都是如此。例如,Perl最好定义为“perl
可执行文件不会拒绝的那些字符串。” (至少在我看来......)
那就是说,正确的风格是@interface
没有空格。请参阅Defining a Class。