3

如果您有 2 个来自相同类型的变量发挥相似的作用,例如 2 个数组的合并函数: IntArray merge(IntArray array1,IntArray array2);

您认为命名变量的最佳(最易读、最不容易出错)方式是什么?var1,var2还是firstVar,secondVar?或者也许是不同的方式?如果你表达你的意见,我很高兴听到背后的理性,特别是关于哪个更不容易出错。

提前致谢。

4

4 回答 4

2

对于 C/C++,我认为以下是首选:

IntArray merge(IntArray a, IntArray b);

因为它简单、简短并且避免在变量名中使用整数。

或“运算符形式”:

IntArray merge(IntArray lhs, IntArray rhs);

(用于左侧右侧

(一样:

IntArray operator+(IntArray lhs, IntArray rhs);

)

“数字”变体和 camelCase 更像 ECMAScript 而不是 C。但它主要是由简单地使用 C/C++ 并使用类似命名的人创建的“标准”(参见C++ 标准库中的 plus 模板作为示例)。

但是你不能得到它背后的太多理由,因为这只是一个品味问题。只要变量同样重要(即merge(a, b) == merge(b, a)),这就是它们从实现代码中引用的方式。

于 2012-08-10T09:04:32.453 回答
1

函数的参数应该始终讨论它们是谁以及它们应该用于什么。如果两个数组之间没有区别(例如,作为源和目标),也许你应该考虑传递一个数组列表(命名为 arraysToMerge 或类似的东西)。变量的名称必须始终解释变量的用途。因为代码是(或至少应该是)我们真正的文档。

于 2012-08-10T08:40:24.777 回答
1

为清楚起见,我使用变量的用途作为名称而不是数字。它立即告诉我变量计数是有限的。例如:

function predicate(int subject, int object)

function merge_array(array firstArray, array secondArray)

使用(array1, array2)听起来对我来说是错误的,因为似乎有 array3,array4,......虽然我们知道变量/参数计数是固定的。

于 2012-07-31T10:16:22.353 回答
1

在你的情况下,我会使用一些类似于 and 的var东西anotherVar
如:

IntArray merge(IntArray array, IntArray anotherArray);

变量和参数应该是不言自明的。我认为这种情况描述得更清楚。

于 2012-08-12T16:02:53.190 回答