在许多具有简单OO功能(PHP 4)或误解OO功能(使用函数指针等的Javascript,C)的语言中,您最终会得到一个使用前导下划线表示的函数命名约定特权级别。
//ex.
function _myPrivateFunction(){
}
虽然各个团队总是会提出这样的命名惯例,但是下划线惯例似乎非常普遍,以至于让我对此感到好奇
除了纯粹的好奇心之外,我现在正在处理的一些代码库中看到这一点,我想了解最初提出它的开发人员可能的顶空。
答案 0 :(得分:13)
在C ++世界中,以下划线开头的成员名称保留供编译器(或API等低级别STL)开发人员使用。编译器不以任何方式禁止它,但这是传统。
此wiki链接在underscore上提供了丰富的信息。
答案 1 :(得分:6)
我无法告诉你这个惯例的起源。我的猜测是,由于下划线是大多数编程语言中唯一允许在标识符中使用的非字母数字字符,因此将其选作私有成员的前缀是很自然的。
在Python中,使用下划线为名称添加前缀不仅仅是一种约定:从模块导入“所有内容”时,默认情况下不会导入以下划线开头的符号,因此下划线表示“私有”/“内部使用”。
答案 2 :(得分:3)
下划线(_)代表私有/受保护的函数或变量。
不知道世界卫生组织实际想出了它,但我知道Zend(以及Zend编码标准)“支持”它。
编辑:http://framework.zend.com/manual/en/coding-standard.naming-conventions.html
- > B.3.4节 - >第2段
答案 3 :(得分:0)
我在编写C ++时第一次看到它。标记具有“m_”前缀的成员变量通常是完成的。
我喜欢在编写Java时不使用任何一种。我使用“this”清除成员变量。
答案 4 :(得分:0)
我看到下划线用作私有函数,我见过将下划线视为全局函数。下划线也用于表示PHP本身的全局变量。
$_POST $_GET $_SESSION etc..
这只是一个命名惯例所以我会问作者,如果他在附近。