作者ashinet (衝啊~)
看板MacDev
標題[問題] 請教一個變數名稱宣告的問題
時間Wed Dec 1 14:34:06 2010
各位好
在有些範例裡面可以看到變數名稱宣告前面加一個底線
請問加底線在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
1F:→ uranusjr:我猜這人之前是寫 C++ 的...C++ setter/getter functions 12/01 15:48
2F:→ uranusjr:和變數不能同名, Objective-C 沒這問題, 其實不加 _ 沒差 12/01 15:48
3F:推 aecho:obj-c沒有namespace,所以只好自己找方法避開命名衝突。 12/01 20:08
4F:→ aecho:而apple的官方文件,有一份會談到這個命名的prefix,suffix 12/01 20:09
5F:→ aecho:的慣例,他會希望你前面不要加_,而是加在最後面, 12/01 20:09
6F:→ aecho:或是其它的prefix。原因其實也很簡單… 12/01 20:09
7F:→ aecho:那種命名慣例被apple用走了,他怕你會跟他衝突到~~ 12/01 20:10
8F:→ aecho:所以不要跟他一樣在變數前加"_" 12/01 20:10
9F:推 aecho:至於加在最後面的範例程式,我發現現在new一個有CoreData 12/01 20:12
10F:→ aecho:的project,他的變數命名就是變數最後面帶著"_" 12/01 20:12
11F:→ zonble:會在前面加底線的通常是成員變數,用來好分辨是在 method 12/02 00:55
12F:→ zonble:裡頭用的變數,還是成員變數。不過現在蘋果建議不要加,因 12/02 00:55
13F:→ zonble:為這個慣例已經被蘋果自己用掉了。 12/02 00:55
14F:→ zonble:Google 的 objc style 則是在成員變數後面加底線 12/02 00:56
16F:→ zonble:話說以前還需要特別用這種方法區隔成員變數,是 Xcode 2 的 12/02 00:57
17F:→ zonble:時候,IDE 功能還頂遜的。但是 Xcode 3 會自動幫你把成員 12/02 00:57
18F:→ zonble:變數用不同的顏色標記出來 12/02 00:58
19F:→ ashinet:哇!感謝各位先進的解答!好詳細,這樣整個懂了!!!! 12/02 09:15