web-dev-qa-db-ja.com

_関数名のアンダースコア

単純なOO機能(PHP 4)、または誤解されているOO機能(Javascript、関数ポインターを使用するCなど)を持つ多くの言語では、最終的には、先頭の下線を使用して特権レベルを示す関数命名規則になります。

//ex.
function _myPrivateFunction(){
}   

個々のチームは常にこのような独自の命名規則を考え出しますが、アンダースコアの規則は非常に普及しているようで、私は興味をそそられました

  1. テクニックが最初に来た場所
  2. 大会の周りに開発された標準化されたシステム(ハンガリアン記法のようなもの)があった場合

純粋な好奇心を超えて、私は今扱っているいくつかのコードベースでこれを見ており、最初にそれを思いついた開発者の可能なヘッドスペースを理解したいと思います。

22
Alan Storm

C++の世界では、アンダースコアで始まるメンバー名は、コンパイラー(またはAPIのような低レベルのSTL)開発者が使用するために予約されています。コンパイラーによって禁止されているわけではありませんが、それが伝統です。

このwikiリンクは アンダースコア で非常に有益です。

13
mentat

この慣習の起源はわかりません。私の推測では、ほとんどのプログラミング言語の識別子で許可されている英数字以外の文字はアンダースコアだけなので、プライベートメンバーのプレフィックスとしてアンダースコアを選択するのは自然なことです。

Pythonでは、名前の前にアンダースコアを付けることは単なる慣例ではありません。モジュールから「すべて」をインポートする場合、デフォルトではアンダースコアで始まる記号はインポートされないため、アンダースコアは「プライベート」/「内部使用法」を示します。

6
Ferdinand Beyer

アンダースコア(_)は、プライベート/保護された関数または変数を表します。

WHOが実際にそれを思いついたのかどうかはわかりませんが、Zend(およびZendコーディング標準)によって「サポート」されていることは知っています。

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

->セクションB.3.4->パラグラフ2

3
mhd

アンダースコアがプライベート関数として使用されているのを見てきましたし、アンダースコアがグローバル関数として使用されているのを見てきました。また、アンダースコアは、PHP自体内のグローバル変数を示すために使用されます。

$_POST $_GET $_SESSION etc..

これは単なる命名規則なので、著者がいるかどうかを尋ねます。

0
Ólafur Waage

私はC++をコーディングするときに最初にそれを見ました。メンバー変数に「m_」プレフィックスを付けることは一般的に行われました。

Javaを作成するときは、そのいずれも使用しない方が好きです。 「this」を使用してメンバー変数を明確にします。

0
duffymo