|
Scope
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ ー : [ちょうおん] (n) long vowel mark (usually only used in katakana)
プログラミングでのスコープとは、ある変数や関数が特定の名前で参照される範囲のこと。ある範囲の外に置いた変数等は、通常、その名前だけでは参照できない。このときこれらの変数はスコープ外である、「見えない」といわれる。 プログラミングでは、予期しない誤作動を避けるためにも、それぞれの作業段階で必要のない名前はできるだけ参照されないようにすることが望ましい(大域変数の危険性)。適切なスコープの判断は、仕様に沿ったプログラムを構成する上で重要である。 == スコープの種類 == === 構文範囲からの分類 === ; 大域スコープ (global scope) : プログラムの「全体」から見えるスコープのこと。このスコープに属する変数は大域変数といわれる。BASICのような単純な言語では大域スコープしか存在しない場合がある。Pythonのような大域変数の書き換えが簡単には行えない言語も存在する。 : ; ファイルスコープ (file scope) : 大域スコープと似ているが、プログラムを記述したファイルの内側でのみ参照できるスコープ。プログラムが複数のファイルから構成される場合は他のファイルから参照することはできない。 : ; 局所スコープ (local scope) : ある関数やブロックの範囲内に限定されたスコープのこと。何を持って範囲を与えるかは言語により様々だが、一般に入れ子のローカルスコープは外側を参照できるのが普通である。このとき兄弟関係にあるスコープは見えない。変数宣言が必要な言語の場合は宣言文以降にスコープが制限される場合が多い。 : ; インスタンススコープ (instance scope) : クラスベースのオブジェクト指向言語で、各インスタンス毎に割り当てられた変数が所属メソッド(メンバ関数)からのみ参照されるスコープのこと。いわゆるカプセル化はこれを指す。保護されない変数の場合は、クラス定義が見えていてオブジェクトにアクセスできる場合は直接参照できる。C言語の構造体参照なども一種のインスタンススコープである。 : ; クラススコープ (class scope) : クラスベースのオブジェクト指向言語で、あるクラスの定義全体から参照できるスコープ。インスタンススコープと異なり変数が共有されるので、ある種の制限された大域スコープと考えることができる。クラススコープをもたない言語の場合でも、ファイルスコープを用いることで同様の機構を実現できる場合がある。ある特定のクラスだけなのか、派生クラスまでも含むのかによってそれぞれクラスインスタンススコープ/クラススコープとさらに細分化する。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「スコープ」の詳細全文を読む スポンサード リンク
|