モジュールの基礎
CoddyのRustジャーニー「Object Oriented Programming」セクションの一部 — レッスン 8/61。
Rustのプログラムが大きくなるにつれて、すべてを1つのファイルにまとめておくのは扱いにくくなります。Rustのモジュールシステムを使用すると、構造体とその実装を別のファイルに移動してコードを整理できます。
別のファイルにモジュールを作成するには、希望するモジュール名で新しいファイルを作成するだけです。例えば、playerモジュールを作成するには、player.rsという名前のファイルを作成します。
// player.rs
struct Player {
name: String,
score: u32,
}
impl Player {
fn new(name: String) -> Player {
Player { name, score: 0 }
}
}
このモジュールをメインファイルで使用するには、mod キーワードを使用して宣言します。これにより、Rust はその名前のファイルを探すようになります:
// main.rs
mod player;
fn main() {
// これでplayerモジュールのアイテムにアクセスできるようになります
}
mod player; 宣言は、Rustに player.rs の内容を探して含めるように指示します。そのファイルのコードをプログラムにリンクするものと考えてください。モジュール名は、ファイル名と完全に一致している必要があります(.rs 拡張子を除く)。
この分離により、関連するコードがまとめられます。構造体の定義とそのすべてのメソッドが1つの専用ファイルに配置される一方で、main.rsはプログラムのエントリポイントに集中したままになります。次のレッスンでは、モジュール内に配置したアイテムに実際にアクセスする方法を学びます。
チートシート
コードを別々のファイルに整理するには、任意の名前でモジュールファイルを作成します。例えば、player.rs です。
// player.rs
struct Player {
name: String,
score: u32,
}
impl Player {
fn new(name: String) -> Player {
Player { name, score: 0 }
}
}
メインファイルでモジュールを使用するには、mod キーワードを使用して宣言します。
// main.rs
mod player;
fn main() {
// モジュールの内容が利用可能になります
}
mod player; 宣言は、Rustに player.rs を探して含めるように指示します。モジュール名はファイル名と完全に一致している必要があります(.rs 拡張子を除く)。
自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。