名前とモジュールの管理
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/10 00:54 UTC 版)
「Go (プログラミング言語)」の記事における「名前とモジュールの管理」の解説
Goには名前とモジュールを管理するために、パッケージという仕組みを持っている。 基本的なパッケージの使用例を下記に示す。 package main// 現在のソースファイルが所属するパッケージ名の指定// 本記事の例では省略されている事が多いが本来は必須である import _ "./sub/a"// (1)ソースファイル中から名前が使用されないパッケージの取り込みimport . "./sub/b"// (2)パッケージ名を省略して、パッケージ内の名前を現在のソースファイルに全て取り込むimport alias_c "./sub/c"// (3)パッケージ名に別名を付けてパッケージ名を現在のソースファイルに取り込むimport "./sub/d"// (4)パッケージ名に末端のパッケージ名と同じ名前を付けて現在のソースファイルに取り込むfunc main() {Function()// (2)のパッケージに所属するFunctionの呼び出しalias_c.Function()// (3)のパッケージに所属するFunctionの呼び出しd.Function()// (4)のパッケージに所属するFunctionの呼び出し} Goには多彩なimport文が存在するが、その構成要素は、別名の指定とGoのソースを格納したフォルダーの指定(またはパッケージバイナリー)という非常に単純なものである。Goでは名前管理とモジュールの取り込み指定を一つの構文にまとめる事で、他の言語では煩わしいモジュールの結合を簡潔なものとしている。 Goの名前管理の特筆する点として名前解決の方法として階層型の名前空間ではなく別名の仕組(のみ)を採用している点が挙げられる。名前解決をするために長い名前を記述する煩わしさはない。 更にGoにはモジュール管理の点でも特筆すべき点がある。Goはソースファイル中に一つ初期化関数(init)を定義する事で、初期化関数により実行時に広域変数を初期化できるという機能を持っている。この初期化関数が呼ばれるソースファイルは、main関数の定義されたソースファイルから連鎖的にimportされたパッケージに含まれるソースファイルだけである。この特性により使う予定もないのに初期化コードが実行されるおそれはない。また、パッケージが初めて参照されるまで初期化が遅延されてしまうという事もない。
※この「名前とモジュールの管理」の解説は、「Go (プログラミング言語)」の解説の一部です。
「名前とモジュールの管理」を含む「Go (プログラミング言語)」の記事については、「Go (プログラミング言語)」の概要を参照ください。
- 名前とモジュールの管理のページへのリンク