下劃線最近,我拿起書BigNerdRanch可可爲Mac OSX和正在尋找周圍使用星號*
的一個很好的解釋,並強調_
,似乎整個語言使用不一致。一些例子:澄清星號和可可語法
這些似乎是功能上等同:
NSString* myString;
NSString *myString;
有時候,新的變量得到一個下劃線,而其他人不:
NSString _myString;
NSString myString;
有時它會都瘋了:
NSString *myString;
NSString *_myString;
我也看到了方法中帶有星號的變體:
- (void)speechSynthesizer:(NSSpeechSynthesizer *)sender
willSpeakWord:(NSRange)characterRange
ofString:(NSString *)string;
那麼什麼是星號或下劃線的功能用途,什麼時候應該使用(或不使用)或者什麼時候應該結合使用?
*表示一個指針(讀了在C編程中),'_'只是另一個字母數字字符,並不代表任何東西(除非作爲一些程序員喜歡使用的變量名稱的指南)。請參閱http://stackoverflow.com/questions/822487/how-does-an-underscore-in-front-of-a-variable-in-a-cocoa-objective-c-class-work – Vervious
只是爲了澄清:第二組變量定義是錯誤的,並且不會編譯或崩潰。對象(即NSObject的子類必須用指針(* thingy))來定義)。不是對象的變量(例如int,float,char)必須定義爲不帶*。 – thundersteele