コース目次 / 第2章

最初の実行 — cargo に任せる

cargo new でプロジェクトを作り、cargo run で動かします。

第2章 / 全5章目安 約25分この章のゴール: 自分で書いた Rust のコードがターミナルから動く
お使いのエディタ
ファイル操作が切り替わります

PlaygroundではRUNを押すだけでした。手元では cargo が同じことをやってくれます。

1. プロジェクトを作る

ターミナル派の方

デスクトップに移動してから打ちます。

VS Codeのターミナルターミナル
cd ~/Desktopcargo new kaimonocd kaimono

行頭の $ は「ここからコマンド」という目印です。$ は打たないでください。

こう出る
    Creating binary (application) `kaimono` package

VS Code をお使いの方

できた kaimono フォルダを VS Code で開いてください(「ファイル」→「フォルダーを開く」)。

中身は3つだけです。

ファイル / フォルダ 何のためのもの
Cargo.toml プロジェクトの名前と版、使う部品の一覧
src/main.rs プログラム本体。ここだけ書きます
.git / .gitignore cargo new が Git の準備もしてくれています
Cargo.toml
[package]
name = "kaimono"
version = "0.1.0"
edition = "2024"

[dependencies]

edition = “2024” はRustの言葉づかいの版です。Rustは互換性を壊さずに新しい書き方を足すために、数年ごとに「版」を切ります。触りません。

2. まず動かす

書き換える前に、そのまま走らせてみます。

VS Codeのターミナルターミナル
cargo run

行頭の $ は「ここからコマンド」という目印です。$ は打たないでください。

こう出る
   Compiling kaimono v0.1.0 (/Users/haruto/Desktop/kaimono)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.12s
     Running `target/debug/kaimono`
Hello, world!

cargo run の1行で、3つのことが起きています。コンパイル(Compiling)、組み立ての完了(Finished)、実行(Running)。
これがコンパイル言語の「保存 → 実行」ループです。コース1の「保存 → リロード」より1手多いぶん、実行する前に間違いを全部教えてもらえます。

target というフォルダができました。ビルドの置き場で、すぐ数百MBになります。触る必要はありませんし、消しても cargo build で作り直せます。人に渡すときは target を除いて渡します(cargo new が用意した .gitignore にも、最初からそう書いてあります)。

3. 書き換える

src/main.rs を、まるごとこう書き換えます。

src/main.rs
fn main() {
    let namae = "はると";
    let kaimono = ["りんご", "パン", "コーヒー"];

    println!("{}さんの買い物メモ", namae);

    for (i, mono) in kaimono.iter().enumerate() {
        println!("{}. {}", i + 1, mono);
    }
}

もう一度 cargo run。

こう出る
はるとさんの買い物メモ
1. りんご
2. パン
3. コーヒー
書き方 何をするか
let namae = "はると"; 名前を付けてしまっておく。型は書いていません(コンパイラが見て決めます)
["りんご", "パン", "コーヒー"] 3つならんだもの。個数が変わらないときはこの形
.iter().enumerate() 1つずつ、番号つきで取り出す
println!("{}. {}", ...) {} の場所にうしろの値が入る。末尾の ! はマクロという別種の呼び出し

型を書いていないのに型があります。Rustは書かれていない型を推測しますが、いったん決まったら変えられません。だから、間違った使い方をすればコンパイル時に止まります。「型を書く手間なしで、型の恩恵だけ受ける」——ここがコース2のTypeScriptと通じるところです。

4. わざと壊してみる

namae を数字と足してみてください。

src/main.rs(1行だけ変えてみる)
    println!("{}さんの買い物メモ", namae + 1);
コンパイラの言い分(抜粋)
error[E0369]: cannot add `{integer}` to `&str`

「文字に数を足すことはできません」。動かす前に止まりました。確かめたら元に戻してください。

ハマったら

「could not find Cargo.toml」と出る

kaimono フォルダの外で打っています。VS Code で kaimono フォルダを開き直してから、ターミナルを開き直してください。cd ~/Desktop/kaimono で移動してから、もう一度打ってください。

1回目の cargo run がすごく遅い

初回だけです。Rustは標準の部品を最初に組み立てます。2回目からは、変えたところだけを作り直すので一瞬です。

ZIPで戻したい

このページの下のZIPは、この章を終えた状態のフォルダです。解凍して、その中で作業を続けられます。自分で書き換えた部分は消えてしまうので、先に自分のファイルを別の場所へ待避してから使ってください。

こうなっていればOK

うまくいかないときは、この章の完成ファイル一式(ZIP)をダウンロードして続きから進めても大丈夫です。

卒業まであと2章です。

この章はまだ完了していません。