モジュールを使用してコードを体系化し、再利用する
Rustでのプログラミングをし始めた頃は、コードは全てmain
関数内に収まったかもしれません。コードが肥大化するにつれ、
最終的に機能を別の関数に移して再利用性とまとまりを高めるでしょう。コードを細切りにすることで、
個々のコード片をそれだけで理解しやすくします。しかし、あまりにも多くの関数があったらどうなるでしょうか?
Rustには、コードの再利用を体系化された形で行うことのできるモジュールシステムが組み込まれています。
コードを関数に抽出するのと同様に、関数(や他のコード、構造体やenumなど)を異なるモジュールに抽出することができます。 モジュールとは、関数や型定義を含む名前空間のことで、それらの定義がモジュール外からも見えるようにするか(public)否か(private)は、 選択することができます。以下が、モジュールの動作法の概要です:
mod
キーワードで新規モジュールを宣言します。モジュール内のコードは、この宣言の直後の波かっこ内か、 別のファイルに存在します。- 標準では、関数、型、定数、モジュールは非公開です。
pub
キーワードで要素は公開され、 名前空間の外からも見えるようになります。 use
キーワードでモジュールやモジュール内の定義をスコープに入れることができるので、 参照するのが楽になります。
この各部品を見て、それらが全体にどうはまり込むかを理解します。