你是以复数还是单数命名你的数组?

当我命名数组types的variables时,我经常遇到一个两难的问题:我是以复数还是单数命名数组?

例如,假设我有一个名称数组:在PHP中,我会说: $names=array("Alice","Bobby","Charles"); 然而,然后让我说我想引用这个数组中的名字。 对于Bobby,我会说: $names[1] 。 但是,这种接缝反直觉。 我宁可叫Bobby $name[1] ,因为Bobby只有一个名字。

所以,你可以看到一个微小的差异。 是否有命名数组的约定?

我使用复数forms。 然后我可以做一些事情:

 $name = $names[1]; 

如果读者不熟悉types声明,名字应该总是传达尽可能多的信息。 因此,数组或集合应该以复数名称命名。

我个人发现$ name [1]是误导性的,因为它意味着“名称的第一个元素”,这不会使英语变得有意义。

我通常会给它一些东西,比如列表

 nameList 

否则,我把它复数。

复数。

 sort(name) sort(names) 

显然,在这里只有复数是有意义的。

然后,在这里:

 name[1] names[1] 

在这方面,两者都是有意义的。

因此,在引用整个集合以及引用集合中的一个项目时,复数是唯一有意义的。

我会永远去的

 appleList appleArray nameAppleDict 

通过使命名约定正确完成,它将为其他人阅读代码节省大量的时间。 因为他们不必回头去检查variablestypes来理解它。

有一个variables名称,如:

 apples 

可能有时会混淆(列表,数组或集合?)

复数为我。

出于上述所有的原因,并且由于我所工作的(我为创build而贡献的)约定的约定要求数组/列表/向量等的复数forms。

虽然在某些情况下多个命名可能会导致一些exception,但大多数情况下,它提供了增强的清晰度和代码,更容易扫描阅读,而不会让人感到烦恼,抓住一个奇怪的构造,并中断stream动,而你回到unnag大脑从任何绊倒它。

其他人说:复数。

在PHP中它更加明目张胆:

 $name = 'Bobby'; echo $name[1]; 

将显示o 。 🙂

我必须承认,几年前我问了自己同样的问题,但是显示数组或集合的复数性质比访问一个成员时的英语含义更重要。

总是复数。 对于可以容纳多个元素的任何其他数据types的列表也是如此。

复数虽然教你在学校单数做,所以你可以说:

 value[0] = 42; 

而且如果你认为这样做确实比以下更有意义:

 values[0] = 42 

大声说出来,如果你不相信我。 无论我使用复数forms,以便在通过代码扫描时可以轻松分辨出来。 这似乎也是人们现在使用的标准。

总是复数。 那样当我做的时候没有任何困惑

 for each (string person in people) { //code } 

我通常使用复数forms,或者有时候与上面引用的方式相同,将List添加到名称中。

我用很多不同的语言工作,有一件不被考虑的是那些不止是数组的语言。 即人:人; 人:字典。 人们不一定是一个数组,它可能是另一种types,并导致错误。 而且,在某些语言中,不同types在不同的操作中performance更好,或者可能有不同的方法。

这就是为什么在现今所有语言中,我使用名词单数forms命名,如果您愿意,可以使用诸如personArray或person_arr之类的名称。 如果有关的话,我通常也会在开始时包含范围。 variables名应该是足够明确的,你不需要自动完成或按Ctrl + F来知道它是什么。