【Rust】第5章第1回:モジュール(Module)の基本:コードの整理と再利用

本記事では、Rustのモジュール(Module)システムの基本概念と、コードを整理して再利用する方法について詳しく解説します。適切にモジュールを活用することで、可読性とメンテナンス性の高いコードを作成できます。
0. 記事の概要
この記事を読むメリット
- Rustのモジュールの基本を理解: コードの整理と再利用を効率化できます。
- 大規模プロジェクトに対応: プロジェクトのスケールに応じた適切なモジュール設計が可能になります。
- 可読性の向上: モジュールを活用して分かりやすいコードを構築できます。
この記事で学べること
- Rustのモジュールの基本構文
- ファイルとディレクトリを活用したモジュール管理
- 公開モジュールと非公開モジュールの使い分け
1. モジュールとは?

1.1 モジュールの基本構文
モジュールはmod
キーワードを使って定義します。
mod greetings {
pub fn hello() {
println!("Hello, Rust!");
}
}
fn main() {
greetings::hello();
}
動作解説
モジュールgreetings
内で関数hello
を定義し、メイン関数から呼び出しています。
2. モジュールの公開と非公開

2.1 pub キーワードの使用
モジュール内の関数を外部から利用可能にするには、pub
キーワードを使用します。
mod library {
pub fn public_function() {
println!("This is a public function.");
}
fn private_function() {
println!("This is a private function.");
}
}
fn main() {
library::public_function();
// library::private_function(); // エラー!
}
動作解説
pub
を付けた関数は外部から呼び出せますが、付けない関数はモジュール内でのみ使用できます。
3. ファイルとディレクトリを活用したモジュール

3.1 ファイル分割の基本
モジュールを別ファイルに分割すると、管理が容易になります。
// main.rs
mod utils;
fn main() {
utils::say_hello();
}
// utils.rs
pub fn say_hello() {
println!("Hello from utils module!");
}
動作解説
モジュールutils
を別ファイルutils.rs
として分離し、メインファイルから呼び出しています。
4. よくあるエラーと対処法
- 「unresolved module」エラー: モジュールが正しく定義されていない場合に発生。
- 「private function」エラー:
pub
を付けていない関数を外部から呼び出そうとすると発生。
5. まとめ
本記事では、Rustのモジュールの基本構文、公開・非公開の管理、ファイル分割による整理方法を学びました。次回は、パッケージ管理ツールCargoの使い方について詳しく解説します。