モジュール

impl ブロックを使うと、関数を型に紐づけて名前空間化できることを見てきました。

同様に、mod を使うと、型と関数を名前空間化できます。

// Copyright 2023 Google LLC
// SPDX-License-Identifier: Apache-2.0

mod foo {
    pub fn do_something() {
        println!("foo モジュール内");
    }
}

mod bar {
    pub fn do_something() {
        println!("bar モジュール内");
    }
}

fn main() {
    foo::do_something();
    bar::do_something();
}
  • パッケージは機能を提供し、1 個以上のクレートのまとまりをどのようにビルドするかを記述した Cargo.toml ファイルを含みます。
  • クレートはモジュールの木構造であり、バイナリクレートは実行ファイルを作成し、ライブラリクレートはライブラリにコンパイルされます。
  • モジュールは構成とスコープを定義し、このセクションの中心となる概念です。