2011-07-20 65 views
0

我曾經聽說用命名變量(強類型語言)的良好慣例是用變量類型的第一個字母作爲前綴。變量類型前綴約定

例如(在C++):

int iInterestRate; 
string sMessage; 

我不知道有什麼優勢,這樣做是。 有沒有?如果是的話,他們是什麼?這是一個很好的公認的命名變量?

+2

對於一些背景http://en.wikipedia.org/wiki/Hungarian_notation –

+0

這個問題應該會產生一些意見。你在談論_Hungarian符號_這是非常有爭議的。它之前已經有好幾次了。請參閱http://stackoverflow.com/questions/111933/why-shouldnt-i-use-hungarian-notation。 –

+0

@Alex K. +1我被27秒毆打:p – Djole

回答

1

聽起來像你聽說過系統匈牙利表示法,它曾經是一個公認的慣例。

好嗎?取決於你問的對象。對我來說,前綴是好的,原因不是這麼多。

這些天系統匈牙利人經常受到很大的蔑視 - 因爲這是一個錯誤。原來的(Apps)匈牙利人的意圖被誤解了,隨之而來的是一團糟。

當然,也有一些優勢,以系統匈牙利,維基百科試圖列表:

http://en.wikipedia.org/wiki/Hungarian_notation#Advantages

沒有關於這個問題的加熱評短缺 - 我不會吐出這一切都在這裏 - 我只是提交你不應該使用它們的數據類型的前綴變量的剛性系統。

但是,如果你想知道是否有優勢,他們邏輯類型前綴變量,答案是一個不合格的「是」。

看應用匈牙利:

http://msdn.microsoft.com/en-us/library/Aa260976

http://www.byteshift.de/msg/hungarian-notation-doug-klunder

我不主張整個事情是,我只是說,他們的理由是合理的。

前綴的優點和缺點是非常主觀的。有人說,它使代碼難以閱讀,而其他人則沒有問題。有些人覺得更難改名,有些人覺得更容易。

我?我更喜歡我的編碼語言與人類英語很容易區分。前綴讓我控制我的代碼,否則我不會有。我不知道或不在乎我的代碼是否難以閱讀 - 我關心它的容易理解

所以是的,一個簡單的前綴約定是好的。只是不要稱之爲匈牙利語。