我遇到了几个例子,它们在标题中声明了类似NSString * mystring和NSString * mystring有什么区别
NSString* mystring;
或
NSString *mystring;
有什么区别?
我遇到了几个例子,它们在标题中声明了类似NSString * mystring和NSString * mystring有什么区别
NSString* mystring;
或
NSString *mystring;
有什么区别?
这些是三个完全不同的词汇元素,它们之间的空白量完全不相关。这些都是等值的编译器生成什么样的条件:
NSString*x;
NSString *x;
NSString* x;
NSString * x;
NSString * x;
NSString /* comment here */ * /* and another */ x;
我喜欢NSString *x
变化,因为指针符属于变量,不是类型。到那个,我的意思是这两个:
int *x, y;
int* x, y;
创建一个名为x
整数指针和一个整数称为y
,不两个整型指针。
谢谢!我在做这件事 - 我从中学习的这本书在他们的使用方面并不一致,让我感到困惑。 – 2012-03-25 02:02:37
没有区别,只是编码风格偏好。
什么都没有,它们之间没有空间甚至是非常重要的。你甚至可以写NSString*mystring
。
现实中没有差异。
在C(和Objective-C中,作为C的超集)中,*
的放置仅仅是风格问题。
我建议您从Google的款式指南中检出relevant section。
是首选项,如果你声明在同一行多个变量是很有用的,即
NSString* mystring1, mystring2; // Misleading, mystring2 is not a *
NSString *mystring1, mystring2; // Is more clear
无任何 - 这是一个个人喜好,你是否觉得...
这里谈到的变量的类型的的NSString指针(NSString* mystring
)
或
这里说到类型的NSString的一个变量,它是一个指针(NSString *mystring
)
...更为清晰可辨。也就是说,只要你是一致的,你不应该放松睡眠。
没有区别。这是一个风格问题。
在Objective-C中,您几乎可以将星形视为变量“类型”的一部分。
但是,编译器将星型解释为“将此变量视为指向声明类型的指针”(在本例中为NSString)。它有趣的是在一次定义多个变量:
NSString *myString, *yourString;
必须使用星上的每个变量。
没有区别。这是一个偏好和风格的问题。
NSString
指针(NSString* mystring)
(NSString *mystring)
优势的第一个方法的NSString
类型的变量:
当编码到协议,有一些变量有明星,有些没有。例如:
NSString* _myString
id<SomeProtocol> _collaborator
与(更混乱):
NString *_myString
id<SomeProtocol> _collaborator
缺点这种方法:(如指出的)
//Only the first is a pointer.
NSString* _myString, _anotherString
现代面向对象的语言(如Java)往往阻碍多个变量在一行上:http://java.sun.com/docs/codeconv/html/CodeConventions.doc5.html#2991
只要记住,选择一个并在整个项目中持续使用它。我不在乎哪一点,只是一致。 – 2011-09-03 21:04:56