Cargo!Cargoは、Rustのビルドシステム兼、パッケージマネージャです。Rustプロジェクトの管理をしています。それらのライブラリのビルド(コードが必要とするライブラリを我々は、依存と呼んでいます)などの多くの仕事を扱ってくれるからです。今までに書いたような最も単純なRustプログラムは、依存がありません。Cargoのコードをビルドする部分しか使用しないでしょう。依存を追加し、Cargoでプロジェクトを開始したら、依存の追加は、遥かに簡単になるのです。Rustプロジェクトの大多数がCargoを使用しているので、これ以降この本では、あなたもCargoを使用していることを想定します。Cargoは、「インストール」節で議論した公式のインストーラを使用していれば、勝手にインストールされます。自分のインストール方法を求めてドキュメンテーションを見、Cargoを個別にインストールする方法を決定してください。world!プロジェクトとどう違うかを見ましょう。projectsディレクトリ(あるいはコードを格納すると決めた場所)に戻ってください。hello_cargo最初のコマンドは、hello_cargoという新しいバイナリの実行可能ファイルを作成します。ライブラリとは対照的に実行可能なアプリケーション(よく単にバイナリと呼ばれる)を作成します。Cargoは、そのファイルを同名のディレクトリに作成します。hello_cargoディレクトリに行き、ファイルを列挙してください。Cargo.tomlファイルと、中にmain.rsファイルがあるsrcディレクトリです。.gitignoreファイルと共に、新しいGitリポジトリも初期化しています。Gitは一般的なバージョンコントロールシステムです。--vcsフラグを使用して何もバージョンコントロールシステムを使用しないようにもできます。--helpを走らせて、利用可能なオプションを確認してください。お好きなテキストエディタでCargo.tomlを開いてください。リスト1-2のコードのような見た目のはずです。Cargoの設定フォーマットです。最初の行の[package]は、後の文がパッケージを設定していることを示すセクションヘッダーです。別のセクションも追加するでしょう。名前、バージョン、誰が書いたかです。今修正してそれから保存してください。最後の行の[dependencies]は、プロジェクトの依存を列挙するためのセクションの始まりです。Rustでは、パッケージのコードはクレートとして参照されます。第2章の最初のプロジェクトでは必要なので、その時にはこの依存セクションを使用するでしょう。world!プログラムを生成してくれています。最上位のディレクトリにCargo.toml設定ファイルがあることです。Cargoは、ソースファイルがsrcディレクトリにあることを期待します。READMEファイル、ライセンス情報、設定ファイル、あるいは、他のコードに関連しないもののためのものです。Cargoを使用すると、プロジェクトを体系化する手助けをしてくれます。全てがその場所にあるのです。実際にCargoを使用するプロジェクトに変換することができます。適切なCargo.tomlファイルを作成してください。target/debug/hello_cargo.exe)に実行可能ファイルを作成します。world!が端末に出力されるはずです。Cargo.lockです。このファイルは、自分のプロジェクトの依存の正確なバージョンを追いかけます。このプロジェクトには依存がないので、ファイルはやや空っぽです。Cargoが中身を管理してくれるのです。world!今回は、Cargoがhello_cargoをコンパイルしていることを示唆する出力がないことに気付いてください。Cargoはファイルが変更されていないことを推察したので、単純にバイナリを実行したのです。checkというコマンドも提供しています。buildよりも遥かに速くなります。実行可能ファイルを生成する手順を飛ばすからです。checkを実行します。buildを走らせるのです。checkでプロジェクトをビルドできる。ビルドの結果をコードと同じディレクトリに保存するのではなく、Cargoはtarget/debugディレクトリに格納する。Cargoを使用する追加の利点は、使用しているOSに関わらず、同じコマンドが使用できることです。故にこの時点で、WindowsとLinux及びmacOSで特定の手順を提供することは最早なくなります。最適化を行なってコンパイルすることができます。target/releaseに実行可能ファイルを作成します。オンにするとプログラムをコンパイルする時間が延びます。頻繁に再ビルドをかけたい開発用と、繰り返し再ビルドすることはなく、できるだけ高速に動いてユーザにあげる最終的なプログラムをビルドする用です。--releaseを確実に実行し、target/releaseの実行可能ファイルでベンチマークしてください。その価値を証明するでしょう。複数のクレートからなる複雑なプロジェクトでは、Cargoにビルドを調整してもらうのが遥かに簡単です。hello_cargoプロジェクトは単純ではありますが、今では、Rustのキャリアを通じて使用するであろう本物のツールを多く使用するようになりました。buildCargoについてより詳しく知るには、ドキュメンテーションを確認してください。world!プログラムを書き、実行する方法Cargoの慣習を使用して新しいプロジェクトを作成し、実行する方法より中身のあるプログラムをビルドし、Rustコードの読み書きに慣れるいいタイミングです。数当てゲームを構築します。第3章を見て、それから第2章に戻ってください。