用前缀'the'开头的变量名

时间:2013-07-02 15:52:09

标签: prefix naming-conventions

好的,这个很难谷歌。

偶尔,我偶然发现使用命名约定的任何语言的代码,其中变量名称在某些情况下以前缀“the”开头。

然而,我无法弄清楚这些情况是什么。所以我的问题是:

  1. 这个惯例是否常见?它有名字吗?

  2. 如果1)仍然是“ungoogleable”:这个约定的原则是什么?它解决了什么问题?我想了解。

  3. 如果1)和2)不涵盖:会议来自何处?它的起源是什么?是或是否与特定的编程语言相关?

  4. 示例:

    我希望能够深入了解人们为什么这样做。一个例子可能是在setter / getter方法中告诉成员参数,但这种前缀选择对我来说似乎是随机的。

2 个答案:

答案 0 :(得分:1)

我唯一想要用 来启动变量名称的时间就是表明它是singleton。除此之外,似乎没有必要使用它。

答案 1 :(得分:1)

根据个人经验(主要是Java,Ruby,Python以及很久以前的C和C ++),您描述的惯例并不常见。

有一个相关的惯例,"类型建议参数名称" Kent Beck" Smalltalk最佳实践模式" (无论你是否编写Smalltalk,都是一本优秀的书),它命名方法参数a(type)an(type),例如anObject。我的理解是,这个约定是使代码读取更像英语,而不是避免任何可能出现的命名冲突。 (Smalltalk类是大写的,因此可以使用下层类名命名参数,并且不会发生冲突。)

这个约定的扩展版本,我在其中看到了带有aan的前缀参数或局部变量以及带有the的对象实例变量,这是有道理的:实例变量是& #34;所述"对于包含对象最重要的一个,而参数或本地只是" a"事情。我希望我能记住我在哪里看到它。我认为它是由一位着名作家撰写的。

我自己通常不会使用这些约定;相反,我(像我见过的大多数代码一样)在Java中使用this.,在Ruby中使用self.来消除实例变量的歧义,并依靠简短的方法来避免消除参数和本地消歧的需要。为角色命名变量而不是它们的类型(在任何情况下都是最佳实践)通常也不需要这些约定。

然而,受到我曾经读过的任何内容的启发,当局部阴影一个方法或函数时,我使用the,我只能想到一个不同的有意义的本地名称。

在Ruby中,只有当方法没有参数时,本地才会影响方法:

def foo
  7
end
foo = foo
=> nil # the left hand side shadowed the right hand side

通过使用空括号调用方法可以避免这种情况:

def foo
  7
end
foo = foo()
=> 7

但空的括号对我来说似乎不那么我喜欢"":

def foo
  7
end
the_foo = foo
=> 7

在Python中,无论函数的参数计数如何,本地都可以隐藏函数,因此我发现自己更频繁地达到the