_函数名称中的下划线

发布于 2024-07-18 02:31:08 字数 352 浏览 8 评论 0原文

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

//ex.
function _myPrivateFunction(){
}   

虽然各个团队总是会想出自己的这样的命名约定,但下划线约定似乎如此普遍,这让我很好奇这项

  1. 技术最初是从哪里来的
  2. ,是否曾经开发过任何标准化系统(有点像匈牙利表示法) 除了纯粹的好奇

之外,我在我现在正在处理的一些代码库中看到了这一点,并且我想了解最初提出它的开发人员可能的想法。

In a lot of languages with simple OO capability (PHP 4), or misunderstood OO capabilities (Javascript, C using function pointers, etc.), you'll end up with a function naming convention that uses leading underscores to to indicate privilege level.

//ex.
function _myPrivateFunction(){
}   

While individual teams are always going to come up with their own naming conventions like this, the underscore convention seems so prevalent that it made me curious about

  1. Where the technique first came from
  2. If there was ever any standardized systems (sort of like hungarian notation) developed around the convention

Beyond pure curiosity, I'm seeing this in a few codebases I'm dealing with right now, and I'd like to understand the possible headspaces of the developers who originally came up with it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

塔塔猫 2024-07-25 02:31:08

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

这个 wiki 链接对于下划线提供了非常丰富的信息。

In C++ world, member names that start with underscore are reserved for use by compiler (or low level STL like API) developers. It's not prohibited by compilers in any way, but that's the tradition.

This wiki link is quite informative on underscore.

紅太極 2024-07-25 02:31:08

我无法告诉你这个公约的起源。 我的猜测是,由于下划线是大多数编程语言中标识符中允许的唯一非字母数字字符,因此很自然地选择它作为私有成员的前缀。

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

I cannot tell you the origin of this convention. My guess is, since the underscore is the only non-alphanumeric character allowed in identifiers in most programming languages, it is natural to chose it as a prefix for private members.

In Python, prefixing names with an underscore is more than just a convention: Symbols starting with an underscore are not imported by default when importing "everything" from a module, therefore the underscore indicates "private" / "internal usage".

故人如初 2024-07-25 02:31:08

下划线(_)代表私有/受保护的函数或变量。

不知道谁实际上提出了它,但我知道它是由 Zend (和 Zend 编码标准)“支持”的。

编辑: http://framework.zend.com/manual/ en/coding-standard.naming-conventions.html

-> B.3.4 节-> 第2段

underscore ( _ ) stands for a private / protected function or variable.

Don't know WHO actually came up with it, but I know it is "supported" by Zend ( and the Zend coding standards ).

edit : http://framework.zend.com/manual/en/coding-standard.naming-conventions.html

-> section B.3.4 -> paragraph 2

稚然 2024-07-25 02:31:08

我第一次看到它是在编写 C++ 代码时。 通常用“m_”前缀标记成员变量。

当我编写 Java 时,我宁愿不使用其中任何一个。 我使用“this”来明确成员变量。

I first saw it when coding C++. Marking member variables with "m_" prefix was commonly done.

I prefer to not use any of that when I write Java. I make member variables clear using "this".

与风相奔跑 2024-07-25 02:31:08

我见过下划线用作私有函数,也见过下划线用作全局函数。 下划线还用于表示 PHP 本身内的全局变量。

$_POST $_GET $_SESSION etc..

这只是一个命名约定,所以我会问作者,如果他在的话。

I've seen underscore used as private functions and I've seen seen underscore as global functions. Also underscore is used to denote global variables within PHP itself.

$_POST $_GET $_SESSION etc..

It's just a naming convention so I'd ask the author, if he's around.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文