ワークスペース

Rust

安全性と性能を両立するシステム言語

まず定義

Rust とは何か

Rust は、コンピューターに正確な手順を伝えるためのプログラミング言語です。最初は暗記ではなく「入力、手順、出力」の流れだけをつかみます。

最小実行情報ファイル main.rs実行 cargo run習慣 Rust の小さな構文を一つ学んだら、すぐ最小例を入力して実行する
プログラム

順番に実行される命令の集まりです。入力を読み、処理し、出力します。

値と変数

値はデータです。変数はそのデータにつける名前です。

関数

小さな仕事をまとめたものです。入力を受け取り、結果を返します。

実行環境

Cargo or rustc が main.rs のコードを実行します。

最初に読むコード

エントリ

fn main と println! マクロ
fn main() {
  println!("{}", 42);
}
出力 42

言語の系譜

Rust の系譜

Rust の出自、近い言語、次に学ぶ候補を一目で確認します。

起源
C++MLHaskell
現在Rustシステムプログラミング言語ファミリー
ファミリーシステムプログラミング言語ファミリー
向いている用途

向いている用途 安全性と性能を両立するシステム言語

ゼロベース

1規則を一つ読む2出力を予測3記憶で入力4チェックを実行5一つ変えて反復

問題バンク

検索してから練習

段階を選ぶか、現在の言語の問題を検索して練習へ移動します。

18 件
1選択第1段階 定義

Rust 問題 1

Rust 問題 1 main 関数 に最も合う説明を選んでください

2選択第1段階 定義

Rust 問題 2

Rust 問題 2 println! マクロ に最も合う説明を選んでください

3選択第1段階 定義

Rust 問題 3

Rust 問題 3 変更可能な束縛 に最も合う説明を選んでください

4選択第1段階 定義

Rust 問題 4

Rust 問題 4 Result の match に最も合う説明を選んでください

5選択第1段階 定義

Rust 問題 5

Rust 問題 5 main 関数 に最も合う説明を選んでください

6選択第1段階 定義

Rust 問題 6

Rust 問題 6 println! マクロ に最も合う説明を選んでください

7選択第1段階 定義

Rust 問題 7

Rust 問題 7 変更可能な束縛 に最も合う説明を選んでください

8選択第1段階 定義

Rust 問題 8

Rust 問題 8 Result の match に最も合う説明を選んでください

9選択第1段階 定義

Rust 問題 9

Rust 問題 9 main 関数 に最も合う説明を選んでください

10選択第1段階 定義

Rust 問題 10

Rust 問題 10 println! マクロ に最も合う説明を選んでください

11選択第1段階 定義

Rust 問題 11

Rust 問題 11 変更可能な束縛 に最も合う説明を選んでください

12選択第1段階 定義

Rust 問題 12

Rust 問題 12 Result の match に最も合う説明を選んでください

13選択第1段階 定義

Rust 問題 13

Rust 問題 13 main 関数 に最も合う説明を選んでください

14選択第1段階 定義

Rust 問題 14

Rust 問題 14 println! マクロ に最も合う説明を選んでください

15選択第1段階 定義

Rust 問題 15

Rust 問題 15 変更可能な束縛 に最も合う説明を選んでください

16選択第1段階 定義

Rust 問題 16

Rust 問題 16 Result の match に最も合う説明を選んでください

17選択第1段階 定義

Rust 問題 17

Rust 問題 17 main 関数 に最も合う説明を選んでください

18選択第1段階 定義

Rust 問題 18

Rust 問題 18 println! マクロ に最も合う説明を選んでください

選択問題

Rust 問題 1

1選択新規

Rust 問題 1 main 関数 に最も合う説明を選んでください

fn main() {
}

参考

main.rs のパターン

Cargo or rustccargo run
記憶から書く小さな概念を見たら閉じて自分で再現します
コードを追跡実行前に変数の変化を一行ずつ追います
自分で入力コピーを減らし一つずつエラーを直します

fn main と println! マクロ

エントリ

fn main() {
  println!("{}", 42);
}
  • main は入口
  • println! はマクロ
  • ブロックには波かっこを使う

let mut 所有権 借用

束縛

let mut score = 40;
score += 2;
println!("{}", score);
  • 束縛は標準で変更不可
  • 必要な時だけ mut を使う
  • むやみに clone せず借用する

match Ok Err 疑問符演算子

Result の扱い

let value: Result<i32, &str> = Ok(42);
  • 回復できるエラーには Result を使う
  • Err を処理する
  • Result を返す関数では ? を使える