2013-07-02 86 views
2

好的,這個對Google來說很難。以前綴'the'開頭的變量名稱

偶爾,我偶然發現了任何使用命名約定的語言的代碼,其中變量名以特定情況下的前綴'the'開頭。

但是,我無法弄清楚這些情況是什麼。所以我的問題是:

  1. 這個約定是否通用?它有名字嗎?

  2. 如果1)仍然是「無法使用的」:此慣例背後的原則是什麼?它解決了什麼問題?我想明白。

  3. 如果不包括1)和2):約定從哪裏來?它的起源是什麼?是或是否連接到特定的編程語言?

實例:

我希望一些洞察到人們爲什麼這樣做。一個例子可能是在setter/getter方法中告訴成員的參數,但是這個前綴的選擇對我來說似乎是隨機的。

+0

這樣的mania的例子本來是不錯的... – fvu

+1

不,「前綴 - 」標籤不是一個好主意 - 我未看到關於未來「the」前綴主題的足夠問題證明一個標籤。 – Dukeling

+0

我明白了,你是對的。這很可能只是一個問題。 –

回答

1

我唯一可以試圖用開始變量名的時候就是表明它是singleton。除此之外,它的使用似乎沒有必要。

+0

嗯,這也是我的感受,但我經常看到它,並認爲可能有一個原因,我只是不明白。我會張貼一些例子,等待更多的迴應... –

1

根據個人經驗(主要是Java,Ruby,Python以及很久以前的C和C++),您所描述的約定並不常見。

有相關約定,在Kent Beck的「鍵入暗示參數名」模式「Smalltalk的最佳實踐模式」(一個很好的書無論你寫的Smalltalk)這名方法參數a(type)an(type),例如anObject。我的理解是,這個約定是爲了使代碼更像英文,而不是避免任何可能出現的命名衝突。 (Smalltalk類是大寫的,所以可以用downcased類名命名參數,並且不會有碰撞。)

這個約定,我看到某處前綴參數或當地人aan,並與the對象的實例變量,這有一定道理的展開版本:實例變量「」一到包含對象最重要的,而參數或本地只是「一個」的東西。我希望我能記得我看到它的地方。我認爲它是由一位知名作家撰寫的。

我通常不會自己使用這些約定;相反,我(像我見過的大多數代碼)在Java中使用this.,在Ruby中使用self.來消除實例變量的歧義,並依靠簡短的方法避開消除參數和本地歧義的需要。爲它們的角色命名變量而不是它們的類型(在任何情況下都是最佳實踐)通常也不需要這樣的約定。

但是,無論它是我曾經閱讀過的啓發,我使用the當本地陰影的方法或功能,我只是不能想到一個不同的有意義的名稱爲本地。

在Ruby中,當地的影子,只有當方法沒有參數的方法:

def foo 
    7 
end 
foo = foo 
=> nil # the left hand side shadowed the right hand side 

這可以通過調用帶有空括號的方法來避免:

def foo 
    7 
end 
foo = foo() 
=> 7 

但空括號似乎所以un-ruby對我來說我更喜歡「the」:

def foo 
    7 
end 
the_foo = foo 
=> 7 

在Python中一個局部可以影響一個fu無論函數的參數是多少,所以我發現自己更經常地訪問the