スロット トータル イクリプス 2k8 カジノモジュールとワークスペース――Rustのプロジェクト管理を理解する仮想通貨カジノパチンコソニー ミラー レス おすすめ

スロット トータル イクリプス 2k8 カジノモジュールとワークスペース――Rustのプロジェクト管理を理解する仮想通貨カジノパチンコソニー ミラー レス おすすめ

スロット トータル イクリプス 2k8 カジノモジュールとワークスペース――Rustのプロジェクト管理を理解する仮想通貨カジノパチンコソニー ミラー レス おすすめ

crash csgok8 カジノ 「基礎からしっかり学ぶRust入門」のインデックス

net スロット 一覧連載:基礎からしっかり学ぶRust入門

 本連載のサンプルコードをGitHubで公開しています。こちらからダウンロードしてみてください。具体的な利用方法は連載第1回を参考にしてください。

別クレートのモジュールを利用する

 本連載第12回では、同一のクレート内にあるモジュールの利用について見てきましたが、実際の開発では別のクレートにモジュールを切り離し、それを利用するというケースの方が多いでしょう。あるクレートにあるモジュール定義を別クレートから利用できるようにするには、以下のようにします。

モジュール名と同名のファイル(拡張子は.rs)をクレートルートと同じフォルダに作成するこのファイルにはモジュール定義の内部だけを記述する利用側のクレートではmod文でこのモジュールを指定する

 src/bin/graphics.rsは、この規則に従って命名、配置したファイルです。規則の通り、graphicsモジュールを定義するmod文のブロックが存在しないことに注意してください。なお、本節のサンプルはmodules2パッケージに作っていきます。

// calcモジュールの定義pub mod calc { pub fn get_x() {} pub fn get_y() {}}// drawモジュールの定義pub mod draw { pub fn point() {} pub fn line() {} pub fn triangle() {} pub fn square() {}}src/bin/graphics.rs

 以下は、graphicsモジュールを利用する側のクレートです。

// graphicsモジュールの定義は同名のファイルにあるとするmod graphics;(1)// 名前空間crate::graphics::drawをインポートuse crate::graphics::draw;(2)fn main() { // インポートした名前空間での省略記法 draw::point();(3) draw::line(); draw::triangle(); draw::square();}src/bin/use_module.rs

 (1)のようにmod文でブロックを省略すると、同名のファイル(拡張子は.rs)にモジュールの定義があるとみなします。これで別クレートにあるモジュールが利用できますが、(2)でuse文を使うことで、モジュール定義の名前空間をスコープに取り込んでいます(インポート)。この結果、(3)のようにインポートした名前空間でフルパスを用いずに関数を呼び出せます。

【補足】クレートの階層化

 本連載第12回を含めて、ここまでクレートの中に複数のモジュールを配置する例を紹介してきましたが、一般的には、1つのクレートには1つのモジュールのみを含めるべきです。これにより、モジュールの独立性が高まり、再利用しやすくなります。

 graphicsモジュールであれば、その中にはcalcとdrawという2つのモジュールがありますが、これらは別クレートにできます。その場合には、クレートルートのあるフォルダにモジュールと同名のgraphicsフォルダを作成し、その下にモジュール名と同名のcalc.rsとdraw.rsをさらに作成することになります。

クレートルート└── graphicsフォルダ(graphicsモジュール) ├── calc.rsクレート(calcモジュール) └── draw.rsクレート(drawモジュール)

 このように、クレートルートを起点に物理的にモジュールツリーを構成することになり、モジュールの階層が簡潔になります。

ワークスペース#CmsMembersControl .CmsMembersControlIn {width:100%;background:url(https://image.itmedia.co.jp/images/spacer.gif) #DDD;opacity:0.05;filter:progid:DXImageTransform.Microsoft.Alpha(Enabled=1,Style=0,Opacity=5);z-index:1;}続きを閲覧するには、ブラウザの JavaScript の設定を有効にする必要があります。仮想通貨カジノパチンコ無料 ゲーム yahoo ゲーム

コメントする