この講座は、Rustの初歩から所有権、エラー処理、並行処理、保存できるCLIまでを扱います。教材はRust 2024 Editionを使います。対応するRust 1.85以降のstableツールチェーンを用意してください。版の番号とEditionは同じものではありません。
道具の役割
rustcはコンパイラ、Cargoは依存管理、ビルド、テストなどをまとめる道具です。rustupはツールチェーンの管理に使います。導入はRust公式の案内に従い、rustc --version と cargo --version を確認します。
cargo new rust-practice --edition 2024 で新しいフォルダを作り、その中へ移動します。Cargo.tomlにはプロジェクト情報、src/main.rsには実行の入口があります。次をsrc/main.rsへ保存します。
fn main() {
let name = "読者";
let minutes = 15 + 10;
println!("こんにちは、{name}さん");
println!("今日の学習時間: {minutes}分");
}
cargo run でコンパイルして実行し、25分という結果を確認します。printlnの感嘆符はマクロ呼び出しを表します。最初は詳細を覚えず、出力に使う構文として読めれば十分です。
検査と実行を使い分ける
cargo checkは実行ファイルを最後まで作る手間を省いて型などを確認します。cargo buildは成果物を作り、cargo testはテストを実行します。cargo fmtは書式をそろえ、cargo clippyは改善候補を調べます。必要なコンポーネントがなければ、公式のrustupの手順で追加します。
Cargo.lockは解決された依存の版を記録します。この講座のようなアプリではGitへ保存して、同じ依存で再現できるようにします。targetディレクトリはビルド生成物で、通常はGitへ入れません。
練習と解答
練習:minutesを35になる式へ変更し、cargo checkとcargo runの違いを確認してください。次に変数名を一か所だけ間違えてください。
解答:15 + 20 とすれば35です。cargo checkではあいさつは表示されません。変数名を間違えるとコンパイル時に指摘されます。エラーの先頭から読み、場所、理由、提案された変更を順に確認します。提案を機械的に適用する前に、どの値を使いたかったかを考えましょう。
公式資料
Rustの導入、Cargo入門、Edition Guideが参照先です。