2012-07-30 70 views
3

如果您有兩個相同類型的播放類似滾動的變量,例如兩個數組的合併函數: IntArray合併(IntArray array1,IntArray array2);變量命名約定 - var1,var2或firstVar,secondVar?

你認爲最好的(最易讀,最不容易出錯)方式來命名變量? var1,var2firstVar,secondVar?或者也許是另一種方式? 如果您表達您的意見,我會很高興聽到理性的背後,特別是關於哪個更不容易出錯。

在此先感謝。

+0

你使用什麼編程語言? – 2012-07-30 21:58:23

+0

C++。我雖然關於標記它,但這些問題確實似乎與語言無關。 – JohnnyW 2012-07-30 22:00:15

回答

1

爲了清楚起見,我將變量的用途用作名稱而不是數字。它立即告訴我,變量計數是有限的。例如:

function predicate(int subject, int object) 

function merge_array(array firstArray, array secondArray) 

使用(array1, array2)聽起來錯誤對我來說,因爲它看起來有ARRAY3,array4,......而我們知道的變量/參數數量是固定的。

1

函數的參數應該始終談論他們是誰以及他們應該用什麼。如果兩個數組之間沒有區別(例如源和目標),那麼也許應該考慮傳遞一個數組列表(名爲arraysToMerge或類似的東西)。 變量的名稱必須始終解釋變量的用途。因爲代碼是(或至少應該是)我們的真實文檔。

+0

數組列表的缺點是它不允許調用者使用正常的調用語法,他將不得不顯式地構造列表(這也涉及複製並損害C++性能) – JohnnyW 2012-08-11 10:11:00

+0

我可以同意談論合併數組問題,因爲它非常具體,並且有一個統一的論點順序。我試圖推廣這個問題。 專注於你的問題,我會避免名稱與數字(如array1,array2 ..),因爲他們讓你形象,可能有兩個以上。即使聽起來很奇怪,你應該找到更具體的東西。 類似於: 函數merge_array(array firstOutOfTwo,array secondOutOfTwo) – lucke84 2012-08-13 08:58:07

2

對於C/C++,我認爲以下將是首選:

IntArray merge(IntArray a, IntArray b); 

因爲它的簡單,短期和變量名使用整數避免。

或者, '運算符形式':

IntArray merge(IntArray lhs, IntArray rhs); 

(對於左手側右側

(相似:

IntArray operator+(IntArray lhs, IntArray rhs); 

'numeric 「變型和駝峯更像是ECMAScript的不是C.但它主要是‘由人創造標準的’誰只是使用C/C++和使用的命名一樣,(見plus template in C++ standard library爲例)。

但你不能讓它落後太多理由,因爲它只是口味的問題。只要變量是同等重要(即merge(a, b) == merge(b, a)),這是他們將是多麼的實現代碼簡稱。

+0

C++中的加號模板很可能在函數的實現/定義中包含不同的變量名稱(而不是出現在聲明簽名中的x和y )。 我對最容易出錯的解決方案最感興趣 – JohnnyW 2012-08-11 10:13:26

+0

你真的害怕什麼樣的錯誤? – 2012-08-11 19:13:16

+0

寫一個你需要寫b或反之亦然的地方 – JohnnyW 2012-08-12 21:40:25

1

在你的情況我會使用沿着varanotherVar線的東西。
如:

IntArray merge(IntArray array, IntArray anotherArray); 

變量和參數應該是不言自明的。我認爲這種情況更清楚地描述了情況。