クロージャ 【closure】 関数閉包

概要

クロージャ(closure)とは、プログラミング言語の機能・仕様の一つで、あるコードブロック内で定義された関数などが、そのブロックスコープとする変数などを参照できること。また、そのような機能を利用してブロック内部で定義された関数のこと。

変数スコープ(有効範囲)を形成するようなコードブロック(言語により異なるが典型的には例えば関数)の内側で関数などを定義すると、関数内で外側のブロック内で宣言されたローカル変数アクセスすることができる。

クロージャの仕組みが無ければ関数からアクセスできるのは自身の引数、自身の内部で宣言されたローカル変数プログラム全体から共通して参照できるグローバル変数に限られるが、クロージャによって自身を含むブロック変数も利用することができる。

クロージャは関数引数として受け取る関数高階関数)に引数コールバック関数)として渡すことができる。単なる関数よりも自由度が高く、複雑な処理を記述することができる。また、クロージャは実際に呼び出されるまで実行されない遅延評価がわれるため、関数型言語などでは制御構造の定義などにも利用される。

(2023.4.19更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる