本記事ではRustのcrateとmoduleを解説していきます。動機としては公式ドキュメントには簡単な説明がありましたが、実用的なものはなくて、困ったので今回記事にしようと思いました。crateとはcrateとはRustプログラムの構成単位です。あなたのアプリケーションもcrateなのです。他のライブラリを取り込みたいことがあると思います。そのときは以下のようにextern(外部)のcrateと使うと宣言します。hoge;そして、hoge::fugapumi()のように使うことができます。依存関係を可視化するcargo-graphを使えば依存関係を可視化することができます。cargo-graphそして可視化をします。cargo-count.dotと思いましたが、まだcargo-graphが最新のcargoのバージョンに追いついていないそうでまだできないそうです。github.commoduleとはRust内の名前空間です。Graphというものを構成します。これはModuleに階層を追加するようなものです。以下のようなディレクトリ構成があったとします。main.rsそして以下のようにしてmain.rsからhelper.rsの関数を呼び出します。helper::say_hello()}サブmodule以下のような構成のときはサブモジュールを使うようになります。main.rsこのときにmain.rsは以下のようにしてsub_modulesを使います。sub_modules;このように宣言をするとsrc/sub_modules.rssrc/sub_modules/mod.rsを探しにいきます。私はディレクトリで分けたいのでsrc/sub_modulesを作っています。実際に呼び出されるsrc/sub_modules/mod.rsには以下のように書いています。helperそしてsrc/sub_modules/helpe.rsには以下のようにしています。println("Hello")}これによってmain.rs内では以下のようにアクセスをできます。sub_modules::helper::say_hello();}ネストしたmodule例えばディレクトリを細かく分けたいときに使うことができます。main.rsここのようにするときは以下のようにします。sub333::say_hello_from_deep_sea();}のようなネスト地獄になることを想定したのではないでしょうか。このときにuseをつかうことができます。sub333::say_hello_from_deep_sea();}で使うことができるので、毎回面倒な呼び出しはなくなります。まとめ新しい言語を学ぶときにimportのクセというものはどの言語でもあります。今回の記事を参考にRustへ入門される方がいたら大変嬉しいです。私は、いくつか家内サービスを運用しています。Kubernetesのいろは。2018の14日目の...2018-12-23Concourseで継続的デリバリー。»プロフィール学生エンジニア。忘れてしまうので備忘録です。flaskでServerlessにホストするTelepresence概論スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。