Rustを始める
あなたのパソコンでRustを動かして、最初のプログラムを作ってみましょう。まだ何もインストールしたくない場合は、Rust Playground(ブラウザでRustを実行できるサイト)で進めて、あとでこのページに戻ってきてもかまいません。
ステップ1:rustup でRustをインストールする
Section titled “ステップ1:rustup でRustをインストールする”Rustの公式なインストール方法は、rustup というツールを使うことです。rustup は、Rustのコンパイラとビルドツールの cargo をインストールし、それらを最新の状態に保ってくれます。
rustup.rs を開いて、使っているOSの手順に従ってください。
-
Windows —
rustup-init.exeをダウンロードして実行し、デフォルトのオプションのまま進めます。 -
macOS / Linux — ターミナルに次のコマンドを貼り付けます。
Terminal window curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
ステップ2:インストールできたか確認する
Section titled “ステップ2:インストールできたか確認する”ターミナルを一度閉じて開き直し、次のコマンドを実行します。
rustc --versioncargo --versionrustc 1.xx.0 のようなバージョン番号が表示されれば、準備完了です。
rustcはRustのコンパイラです(あなたのコードを実行できるプログラムに変換します)。cargoは、プロジェクトのビルド、実行、テスト、管理をまとめてこなすRustの万能ツールです。ほとんどの作業でcargoを使います。
ステップ3:最初のプロジェクトを作る
Section titled “ステップ3:最初のプロジェクトを作る”ファイルを手作業で作る代わりに、cargo にプロジェクトを用意してもらいましょう。
cargo new hello_rustcd hello_rustこれで hello_rust というフォルダができ、Rustのプロジェクトに必要なものがすべてそろいます。
hello_rust/├── Cargo.toml # プロジェクトの設定と依存関係└── src/ └── main.rs # ここにコードを書くCargo.tomlはプロジェクトの説明書です(名前、バージョン、使っているライブラリなど)。src/main.rsは最初に実行されるファイルです。cargoが Hello World のコードまで書いておいてくれます。
ステップ4:実行する
Section titled “ステップ4:実行する”プロジェクトのフォルダの中で、次のコマンドを実行します。
cargo runcargo がプロジェクトをコンパイルし、次のように表示されます。
Hello, world!これだけです。あなたは今、Rustのプログラムをビルドして実行しました。
コードを理解しよう
Section titled “コードを理解しよう”src/main.rs を開くと、次のコードがあります。
fn main() { println!("Hello, world!");}fn main() { ... }は main関数 を定義しています。Rustのプログラムはすべて、ここから実行が始まります。println!("...")は、1行のテキストを画面に表示します。
メッセージを書き換えて、もう一度 cargo run を実行してみましょう。
fn main() { println!("はじめてのRustプログラムからこんにちは!");}実行結果:
はじめてのRustプログラムからこんにちは!cargo run と cargo build の違い
Section titled “cargo run と cargo build の違い”よく使う2つのコマンドです。
| コマンド | すること |
|---|---|
cargo run |
コンパイルして実行する(開発中はこれが便利) |
cargo build |
コンパイルだけする。プログラムは target/debug/ に作られる |
cargo build --release |
最適化された、より速いバージョンをコンパイルする(配布用) |
うまくいかないとき:コンパイラのエラーを読む
Section titled “うまくいかないとき:コンパイラのエラーを読む”コンパイラのエラーは必ず目にします。毎日のように、Rustを何年使っていても、です。エラーが出るのは、あなたの能力が足りないからではありません。コンパイラがちゃんと仕事をしている証拠です。はじめて見たときに怖くないように、わざとエラーを起こしてみましょう。
src/main.rs の println! から ! を消してみます。
fn main() { println("Hello, world!");}cargo run を実行すると、次のように表示されます。
error[E0423]: expected function, found macro `println` --> src/main.rs:2:5 |2 | println("Hello, world!"); | ^^^^^^^ not a function |help: use `!` to invoke the macro |2 | println!("Hello, world!"); | +上から順に読んでいきましょう。
- 1行目は、何が間違っているかを伝えています。Rustは関数を期待していたのに、
printlnはマクロ(macro)だった、という意味です(マクロが何かは次のページで学びます)。 --> src/main.rs:2:5は場所を示しています。ファイルsrc/main.rsの2行目、5文字目です。^^^^^^^の印は、問題のあるコードの部分をぴったり指しています。help:の部分には、直し方が書かれていることがよくあります。ここでは「マクロを呼び出すには!を使ってください」と書かれ、足りない!の位置に+の印まで付いています。
! を戻せば、また元どおり動きます。
fn main() { println!("Hello, world!");}実行結果:
Hello, world!ステップ5:エディタを設定する(おすすめ)
Section titled “ステップ5:エディタを設定する(おすすめ)”快適に開発するために、エディタに rust-analyzer の拡張機能をインストールしましょう。入力しながら、自動補完、その場でのエラー表示、型のヒントなどが使えるようになります。
- VS Code — rust-analyzer 拡張機能をインストールします
- ほかの多くのエディタ(JetBrains、Neovim など)も rust-analyzer に対応しています。
1. 3行のプログラム
Section titled “1. 3行のプログラム”あなたの名前、好きな食べ物、そして Rustを動かしたよ! の3行を表示するプログラムを作ってください。ヒント:println! 1つで1行が出力されるので、3つ使います。
解答を見る
fn main() { println!("私の名前はSamです"); println!("ピザが好きです"); println!("Rustを動かしたよ!");}実行結果:
私の名前はSamですピザが好きですRustを動かしたよ!2. 小さなバナー
Section titled “2. 小さなバナー”下のような小さなバナーを表示してください。タイトルの上下に = の線を引きます。それができたら、わざと ! を1つ消して cargo run を実行し、エラーを読んでから直してみましょう。ヒント:= の線も、ほかのメッセージと同じように println! の中のただの文字列です。
解答を見る
タイトルは英語のままにしています。日本語の文字は画面上で半角2文字分の幅を取るので、= の線と長さがそろわなくなるからです。
fn main() { println!("=============="); println!(" HELLO RUST"); println!("==============");}実行結果:
============== HELLO RUST==============- rustup.rs から
rustupでRustをインストールします。 rustc --versionとcargo --versionで確認します。cargo newでプロジェクトを作り、cargo runで実行します。- プロジェクトには
Cargo.toml(設定)とsrc/main.rs(あなたのコード)があります。 - コンパイラのエラーは上から順に読みます。何が間違っているか、どこか、そして多くの場合
help:に直し方が書かれています。 - エディタに rust-analyzer を入れると、ずっと快適になります。
理解度チェック
Section titled “理解度チェック”理解度チェック
1. Rustのコンパイラと cargo をインストールし、最新に保ってくれるツールはどれですか?
2. Rustのプロジェクトの名前、バージョン、依存関係を記述するファイルはどれですか?
3. プログラムを実行せず、コンパイルだけするコマンドはどれですか?
スコア: 0 / 3
さらに詳しく
Section titled “さらに詳しく”- インストール — The Rust Programming Language 日本語版:各OSでのインストール方法、
rustup updateによる更新、トラブルシューティングを説明しています。 - Hello, Cargo! — The Rust Programming Language 日本語版:
cargo new、cargo build、cargo run、cargo checkをくわしく見ていきます。 - First Steps with Cargo — The Cargo Book(英語):
cargo newが何を作るのか、Cargo.tomlの各行が何を意味するのかを説明しています。 - The rustup book(英語):追加のツールチェーンのインストール、Rustの更新、stable版とnightly版の切り替え方法です。
- rust-analyzer(英語):VS Code、Neovim、Emacs などのエディタでの設定ガイドがあります。