Rust-modules
Rust-モジュール
コードの論理グループはモジュールと呼ばれます。 複数のモジュールは、 crate と呼ばれるユニットにコンパイルされます。 Rustプログラムには、バイナリクレートまたはライブラリクレートが含まれている場合があります。 バイナリクレートは、_main()_メソッドを持つ実行可能なプロジェクトです。 ライブラリクレートは、他のプロジェクトで再利用できるコンポーネントのグループです。 バイナリクレートとは異なり、ライブラリクレートにはエントリポイントがありません(main()メソッド)。 Cargoツールは、Rustのクレートを管理するために使用されます。 たとえば、_network_モジュールにはネットワーク関連の関数が含まれ、_graphics_モジュールには描画関連の関数が含まれます。 モジュールは、他のプログラミング言語の名前空間に似ています。 サードパーティのクレートは、https://crates.io/[crates.io]から貨物を使用してダウンロードできます。
Sr.No | Term & Description |
---|---|
1 |
crate Rustのコンパイル単位です。クレートはバイナリまたはライブラリにコンパイルされます。 |
2 |
cargo 木箱用の公式Rustパッケージ管理ツール。 |
3 |
module クレート内のコードを論理的にグループ化します。 |
4 |
公式のRustパッケージレジストリ。 |
構文
モジュールはパブリックまたはプライベートにできます。 プライベートモジュールのコンポーネントは、他のモジュールからアクセスできません。 Rustのモジュールはデフォルトでプライベートです。 それどころか、公開モジュールの関数は他のモジュールからアクセスできます。 モジュールを公開するには、 pub キーワードを接頭辞として付ける必要があります。 パブリックモジュール内の関数もパブリックにする必要があります。
図:モジュールの定義
この例では、パブリックモジュール-_movies_を定義しています。 モジュールには、パラメーターを受け入れてその値を出力する関数_play()_が含まれています。
出力
キーワードを使用
_use_キーワードは、パブリックモジュールのインポートに役立ちます。
構文
図
出力
ネストされたモジュール
モジュールはネストすることもできます。 _comedy_モジュールは_english_モジュール内にネストされ、さらに_movies_モジュール内にネストされています。 以下の例では、_movies/english/comedy_モジュール内で関数_play_を定義しています。
出力
図-ライブラリクレートを作成し、バイナリクレートで消費する
モジュール movies を含む movie_lib という名前のライブラリクレートを作成しましょう。 movie_lib ライブラリクレートを構築するには、 cargo ツールを使用します。
手順1-プロジェクトフォルダーの作成
フォルダー_movie-app_の後にサブフォルダー_movie-lib_を作成します。 フォルダーとサブフォルダーが作成されたら、このディレクトリに src フォルダーとCargo.tomlファイルを作成します。 ソースコードは、_src folder_に配置する必要があります。 srcフォルダーにlib.rsおよびmovies.rsファイルを作成します。 _Cargo.toml_ファイルには、バージョン番号、作成者名などのプロジェクトのメタデータが含まれます。
プロジェクトのディレクトリ構造は次のようになります-
手順2-Cargo.tomlファイルを編集してプロジェクトメタデータを追加する
ステップ3-lib.rsファイルを編集します。
このファイルに次のモジュール定義を追加します。
上記の行は、公開モジュール- movies を作成します。
ステップ4-movies.rsファイルを編集する
このファイルは、moviesモジュールのすべての機能を定義します。
上記のコードは、パラメーターを受け入れてコンソールに出力する関数* play()*を定義しています。
ステップ5-ライブラリクレートを構築する
ステップ6-テストアプリケーションを作成する
movie-appフォルダーに別の movie-lib-test フォルダーを作成し、その後にCargo.tomlファイルとsrcフォルダーを作成します。 これは、以前に作成したライブラリクレートを使用するバイナリクレートであるため、このプロジェクトにはmainメソッドが必要です。 srcフォルダーにmain.rsファイルを作成します。 フォルダー構造は次のようになります。
ステップ7-Cargo.tomlファイルに以下を追加します
注-ライブラリフォルダーへのパスは依存関係として設定されます。 次の図は、両方のプロジェクトの内容を示しています。
ステップ8-以下をmain.rsファイルに追加します
上記のコードは、movies_libという外部パッケージをインポートします。 現在のプロジェクトのCargo.tomlをチェックして、クレート名を確認します。
ステップ9-カーゴビルドとカーゴランの使用
私たちは貨物ビルドと貨物実行を使用してバイナリプロジェクトをビルドし、以下に示すように実行します-