Objective c NSString*mystring和NSString*mystring之间有什么区别
我遇到了几个示例,它们在头文件中声明的类与Objective c NSString*mystring和NSString*mystring之间有什么区别,objective-c,Objective C,我遇到了几个示例,它们在头文件中声明的类与 NSString* mystring; 或 有什么区别吗?没有区别,只是编码风格偏好 没什么,它们之间有空间甚至都不重要。您甚至可以编写NSString*mystring实际上没有区别。在C(以及Objective-C,作为C的超集)中,*的位置仅仅是风格问题 我建议您查看Google的样式指南。是首选项,如果您在同一行中声明多个变量,即 NSString* mystring1, mystring2; // Misleading, mystring
NSString* mystring;
或
有什么区别吗?没有区别,只是编码风格偏好 没什么,它们之间有空间甚至都不重要。您甚至可以编写
NSString*mystring
实际上没有区别。在C(以及Objective-C,作为C的超集)中,*
的位置仅仅是风格问题
我建议您查看Google的样式指南。是首选项,如果您在同一行中声明多个变量,即
NSString* mystring1, mystring2; // Misleading, mystring2 is not a *
NSString *mystring1, mystring2; // Is more clear
一点也没有-这是个人偏好,你是否认为
NSString*mystring
)
或
NSString*mystring
)
…更清晰。也就是说,只要你保持一致,你就不应该放松睡眠。没有区别。这是风格的问题 在Objective-C中,您几乎可以将星形视为变量“类型”的一部分 但是,编译器将star解释为“将此变量视为指向声明类型的指针”(在本例中为NSString)。有趣的是一次定义多个变量:
NSString *myString, *yourString;
必须在每个变量上使用星号。这是三个完全不同的词汇元素,它们之间的空白量完全无关。就编译器生成的内容而言,这些都是等效的:
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
的整数指针,而不是两个整数指针。没有区别。这是一个偏好和风格的问题
NSString
pointer(NSString*mystring)
NSString
类型的变量,它是一个指针(NSString*mystring)
NSString* _myString
id<SomeProtocol> _collaborator
现代OO语言(如Java)倾向于不鼓励在一行中使用多个变量:记住,选择一个,并在整个项目中始终使用它。我不管是哪一个,只要始终如一。谢谢!我一直在思考这个问题——我正在学习的这本书的用法不一致,让我感到困惑。
NSString* _myString
id<SomeProtocol> _collaborator
NString *_myString
id<SomeProtocol> _collaborator
//Only the first is a pointer.
NSString* _myString, _anotherString