コンピュータ プログラミングにおいて、スコープとは、値と式が関連付けられる囲みコンテキストのことです。スコープ解決演算子は、特に名前空間またはクラスを指定することにより、識別子が参照するコンテキストを識別および指定するのに役立ちます。具体的な用途は、スコープの概念を持つプログラミング言語によって異なります。多くの言語では、スコープ解決演算子は と記述されます。
::
一部の言語、特にModula-3の影響を受けた言語( PythonやGoを含む) では、モジュールはオブジェクトであり、モジュール内のスコープ解決は通常のオブジェクト メンバー アクセスの特殊なケースであるため、スコープ解決には通常のメソッド演算子.が使用されます。他の言語、特にC++やRuby では、スコープ解決とメソッド アクセスの両方が備わっており、これらはさまざまな方法で相互作用します。以下の例を参照してください。
C++
class A { public : static int i ; // i のスコープは A です};
名前空間B { int c = 2 ; } // 名前空間 B
int A :: i = 4 ; // スコープ演算子はクラス A で宣言された整数 i を参照しますint x = B :: c ; // スコープ演算子は名前空間 B で宣言された整数 c を参照します
PHP の
PHPでは、スコープ解決演算子はPaamayim Nekudotayim (ヘブライ語: פעמיים נקודותיים、[paʔaˈmajim nekudoˈtajim]と発音されます ) とも呼ばれ、2 番目の単語は נקודתיים の口語的転訛です。[nekudaˈtajim]と発音します)。ヘブライ語で「二重コロン」を意味します。
「Paamayim Nekudotayim」という名前は、 PHP 3で使用されるイスラエル開発の[1] Zend Engine 0.5で導入されました。当初、エラー メッセージには の内部トークン名が単に使用されていたため、ヘブライ語を話さない人にとっては混乱を招きました。これは PHP 5.4 で以下のように明確化されました。
::T_PAAMAYIM_NEKUDOTAYIM
$ php -r ::
解析エラー: 構文エラー、予期しない '::' (T_PAAMAYIM_NEKUDOTAYIM)
PHP 8以降、エラーメッセージからヘブライ語の名前が削除されました。
$ php -r ::
解析エラー: 構文エラー、予期しないトークン "::"、コマンド ライン コードの 1 行目にファイルの終わりが必要です
ルビー
Rubyでは、 module キーワードを使用してスコープ解決を指定できます。
モジュール例バージョン= 1 . 0
class << self # モジュールのシングルトンクラスにアクセスしていますdef hello ( who = "world" ) "Hello #{ who } " end end end #/例
例:: hello # => "Hello world"例.hello "hacker" # => "Hello hacker "
例::バージョン# => 1.0例.バージョン# NoMethodError
# これは、メッセージ演算子 (.) と Ruby のスコープ演算子 (::) の違いを示しています。
# hello は Example のスコープの一部であり、Example は
hello メッセージに応答するため、::hello と .hello の両方を使用できます。
#
# ::Version と .Version では同じことはできません。Version は Example のスコープ内にあるためですが、
応答するメソッドがないため、Example はメッセージ Version に応答できません。
スコープは変数名の前に付く 記号によっても影響を受けます。
参考文献
- ^ 「スコープ解決演算子」。PHP 5 マニュアル。2007年 8 月 9 日閲覧。
外部リンク
- Bjarne Stroustrup の C++ 用語集
