_函数名称中的下划线

Ala*_*orm 22 javascript php oop history naming-conventions

在许多具有简单OO功能(PHP 4)或误解OO功能(使用函数指针等的Javascript,C)的语言中,您最终会得到一个使用前导下划线来表示权限级别的函数命名约定.

//ex.
function _myPrivateFunction(){
}   
Run Code Online (Sandbox Code Playgroud)

虽然各个团队总是会提出这样的命名惯例,但是下划线惯例看起来如此普遍,以至于让我很好奇

  1. 技术最初的来源
  2. 如果围绕公约制定了任何标准化系统(有点像匈牙利符号)

除了纯粹的好奇心之外,我在一些我正在处理的代码库中看到了这一点,并且我想了解最初提出它的开发人员可能的顶空.

men*_*tat 13

在C++世界中,以下划线开头的成员名称保留供编译器(或低级STL,如API)开发人员使用.编译器不以任何方式禁止它,但这是传统.

这个wiki链接在下划线上非常有用.

  • 实际上,所有以下划线开头的名称都保留在全局名称空间中,但只有包含双下划线或以下划线和*大写*字母开头的名称才会在所有上下文中保留.请参阅标准中的http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-ac-identifier或17.4.3. (7认同)

Fer*_*yer 6

我不能告诉你这个惯例的起源.我的猜测是,由于下划线是大多数编程语言中唯一允许在标识符中使用的非字母数字字符,因此将其选作私有成员的前缀是很自然的.

在Python中,使用下划线为名称添加前缀不仅仅是一种约定:从模块导入"所有内容"时,默认情况下不会导入以下划线开头的符号,因此下划线表示"私有"/"内部使用".