Coding style 变量命名约定-var1、var2或firstVar、secondVar?

Coding style 变量命名约定-var1、var2或firstVar、secondVar?,coding-style,naming-conventions,Coding Style,Naming Conventions,如果您有两个来自同一类型的变量,它们播放类似的滚动,例如两个数组的合并函数: IntArray合并(IntArray阵列1、IntArray阵列2) 您认为命名变量的最佳方法是什么(可读性最好,最不容易出错)var1、var2或第一个VAR、第二个VAR?或者换一种方式? 如果你表达你的观点,我会很高兴听到背后的理性,特别是关于哪个更不容易出错 提前感谢。为了清楚起见,我使用变量的用途作为名称,而不是数字。它立即告诉我变量计数是有限的。例如: function predicate(int sub

如果您有两个来自同一类型的变量,它们播放类似的滚动,例如两个数组的合并函数: IntArray合并(IntArray阵列1、IntArray阵列2)

您认为命名变量的最佳方法是什么(可读性最好,最不容易出错)var1、var2第一个VAR、第二个VAR?或者换一种方式? 如果你表达你的观点,我会很高兴听到背后的理性,特别是关于哪个更不容易出错


提前感谢。

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

function predicate(int subject, int object)

function merge_array(array firstArray, array secondArray)

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

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

对于C/C++,我认为以下内容更可取:

IntArray merge(IntArray a, IntArray b);
因为它简单、简短,并且避免在变量名中使用整数

或“操作员表格”:

IntArray merge(IntArray lhs, IntArray rhs);
(用于左侧和右侧)

(同样:

)

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


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

在您的例子中,我将使用类似
var
另一个var
的内容
例如:

IntArray merge(IntArray array, IntArray anotherArray);

变量和参数应该是自解释的。我认为这种情况更清楚地描述了。

你使用的是什么编程语言?C++。我想标记它,但问题似乎与语言无关。数组列表的缺点是它不允许调用者使用正常的调用语法,而且调用者必须显式地构造列表(这也会涉及复制并影响C++的性能)。我同意谈论合并数组的问题,因为它非常具体,并且有一个统一的参数顺序。。我试图概括这个问题。专注于你的问题,我会避免使用带有数字的名字(比如array1,array2…),因为它们让你想象可能有两个以上的名字。你应该找到更具体的东西,即使听起来很奇怪。类似函数MelgEySrar(数组FrastOutOutOfFosi2,数组StimeOutOutOf2),C++中的Plus模板可能很好地包含函数的实现/定义中的不同变量名称(而不是声明中签名的X和Y)。我最感兴趣的是一种错误率最低的解决方案写a时需要写b,反之亦然,如果变量同样重要,那么我相信没有命名可以减少或增加错误率。除非您有一个非常具体的用例,否则一切都可能归结为计算是否存在与
b
s相同数量的
a
s……我同意使用命名约定似乎很难避免它,但这正是我试图解决的问题。我对答案投了赞成票,但这并不能证明我所指的情况是不可避免的(有资格获得赏金)@JohnnyW:如果你提供一些示例实现代码,也许我们可以想出更好的办法。
IntArray merge(IntArray array, IntArray anotherArray);