看板 MacDev 關於我們 聯絡資訊
各位好 在有些範例裡面可以看到變數名稱宣告前面加一個底線 請問加底線在ob-c裡面有什麼特殊的用途嗎? 感謝! 例如: NSMutableArray *_thingsToLearn; 為何不直接用 NSMutableArray *thingsToLearn; from http://www.raywenderlich.com/2033/ core-graphics-101-lines-rectangles-and-gradients -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.82.105.125
uranusjr:我猜這人之前是寫 C++ 的...C++ setter/getter functions 12/01 15:48
uranusjr:和變數不能同名, Objective-C 沒這問題, 其實不加 _ 沒差 12/01 15:48
aecho:obj-c沒有namespace,所以只好自己找方法避開命名衝突。 12/01 20:08
aecho:而apple的官方文件,有一份會談到這個命名的prefix,suffix 12/01 20:09
aecho:的慣例,他會希望你前面不要加_,而是加在最後面, 12/01 20:09
aecho:或是其它的prefix。原因其實也很簡單… 12/01 20:09
aecho:那種命名慣例被apple用走了,他怕你會跟他衝突到~~ 12/01 20:10
aecho:所以不要跟他一樣在變數前加"_" 12/01 20:10
aecho:至於加在最後面的範例程式,我發現現在new一個有CoreData 12/01 20:12
aecho:的project,他的變數命名就是變數最後面帶著"_" 12/01 20:12
zonble:會在前面加底線的通常是成員變數,用來好分辨是在 method 12/02 00:55
zonble:裡頭用的變數,還是成員變數。不過現在蘋果建議不要加,因 12/02 00:55
zonble:為這個慣例已經被蘋果自己用掉了。 12/02 00:55
zonble:Google 的 objc style 則是在成員變數後面加底線 12/02 00:56
zonble:Google 的 coding style 手冊 http://ppt.cc/gen.php 12/02 00:57
zonble:話說以前還需要特別用這種方法區隔成員變數,是 Xcode 2 的 12/02 00:57
zonble:時候,IDE 功能還頂遜的。但是 Xcode 3 會自動幫你把成員 12/02 00:57
zonble:變數用不同的顏色標記出來 12/02 00:58
ashinet:哇!感謝各位先進的解答!好詳細,這樣整個懂了!!!! 12/02 09:15