Introduction
1.
Hello World
❱
1.1.
コメント
1.2.
フォーマットしてプリント
❱
1.2.1.
デバッグ
1.2.2.
ディスプレイ
❱
1.2.2.1.
テストケース: リスト
1.2.3.
フォーマット
2.
基本データ型
❱
2.1.
リテラルとオペレータ
2.2.
タプル
2.3.
配列とスライス
3.
カスタム型
❱
3.1.
構造体
3.2.
列挙型
❱
3.2.1.
use
3.2.2.
C言語ライクな列挙型
3.2.3.
テストケース: 連結リスト
3.3.
定数
4.
変数束縛
❱
4.1.
ミュータビリティ
4.2.
スコープとシャドーイング
4.3.
宣言
4.4.
値の凍結
5.
型
❱
5.1.
型キャスト
5.2.
リテラル
5.3.
型推論
5.4.
エイリアス
6.
型変換
❱
6.1.
FromおよびInto
6.2.
TryFromおよびTryInto
6.3.
Stringとの型変換
7.
式
8.
条件分岐
❱
8.1.
if/else
8.2.
loop
❱
8.2.1.
ネストとラベル
8.2.2.
loopが返す値
8.3.
while
8.4.
for と range
8.5.
match
❱
8.5.1.
デストラクト
❱
8.5.1.1.
タプル
8.5.1.2.
配列とスライス
8.5.1.3.
列挙型
8.5.1.4.
ポインタとref
8.5.1.5.
構造体
8.5.2.
ガード
8.5.3.
バインディング
8.6.
if let
8.7.
let-else
8.8.
while let
9.
関数
❱
9.1.
メソッド
9.2.
クロージャ
❱
9.2.1.
要素の捕捉
9.2.2.
捕捉時の型推論
9.2.3.
クロージャを受け取る関数
9.2.4.
関数を受け取る関数
9.2.5.
クロージャを返す関数
9.2.6.
stdにおける使用例
❱
9.2.6.1.
Iterator::any
9.2.6.2.
Iterator::find
9.3.
高階関数
9.4.
発散する関数
10.
モジュール
❱
10.1.
プライベートとパブリック
10.2.
構造体の場合
10.3.
use宣言
10.4.
super と self
10.5.
ファイルの階層構造
11.
クレート
❱
11.1.
ライブラリ
11.2.
ライブラリの利用
12.
Cargo
❱
12.1.
Dependencies
12.2.
Conventions
12.3.
Tests
12.4.
Build Scripts
13.
アトリビュート
❱
13.1.
dead_code
13.2.
クレート
13.3.
cfg
❱
13.3.1.
条件の追加
14.
ジェネリクス
❱
14.1.
関数
14.2.
メソッド
14.3.
ジェネリックトレイト
14.4.
ジェネリック境界
❱
14.4.1.
テストケース: 空トレイト
14.5.
複数のジェネリック境界
14.6.
Where句
14.7.
ニュータイプイディオム
14.8.
関連型
❱
14.8.1.
関連型が必要になる状況
14.8.2.
関連型
14.9.
幽霊型パラメータ
❱
14.9.1.
テストケース: 単位を扱う
15.
スコーピングの規則
❱
15.1.
RAII
15.2.
所有権とムーブ
❱
15.2.1.
ミュータビリティ
15.2.2.
部分的ムーブ
15.3.
借用
❱
15.3.1.
ミュータビリティ
15.3.2.
エイリアス
15.3.3.
refパターン
15.4.
ライフタイム
❱
15.4.1.
明示的アノテーション
15.4.2.
関数
15.4.3.
メソッド
15.4.4.
構造体
15.4.5.
トレイト
15.4.6.
ライフタイム境界
15.4.7.
圧縮
15.4.8.
スタティックライフタイム
15.4.9.
省略
16.
トレイト
❱
16.1.
導出(Derive)
16.2.
dynを利用してトレイトを返す
16.3.
演算子のオーバーロード
16.4.
メモリ解放
16.5.
イテレータ
16.6.
impl Trait
16.7.
クローン
16.8.
スーパートレイト
16.9.
Disambiguating overlapping traits
17.
macro_rules!
❱
17.1.
構文
❱
17.1.1.
識別子
17.1.2.
オーバーロード
17.1.3.
繰り返し
17.2.
DRY (Don't Repeat Yourself)
17.3.
Domain Specific Languages (ドメイン特化言語、DSLs)
17.4.
可変個引数
18.
エラーハンドリング
❱
18.1.
panic
18.2.
abort & unwind
18.3.
Option と unwrap
❱
18.3.1.
?によるOptionのアンパック
18.3.2.
Combinators: map
18.3.3.
Combinators: and_then
18.3.4.
Defaults: or, or_else, get_or_insert, 'get_or_insert_with`
18.4.
Result
❱
18.4.1.
Resultのmap
18.4.2.
Resultに対するエイリアス
18.4.3.
早期リターン
18.4.4.
?の導入
18.5.
複数のエラー型
❱
18.5.1.
OptionからResultを取り出す
18.5.2.
エラー型を定義する
18.5.3.
エラーをBoxする
18.5.4.
?の他の活用法
18.5.5.
エラーをラップする
18.6.
Resultをイテレートする
19.
標準ライブラリの型
❱
19.1.
Box, スタックとヒープ
19.2.
ベクタ型
19.3.
文字列
19.4.
Option
19.5.
Result
❱
19.5.1.
?
19.6.
panic!
19.7.
ハッシュマップ
❱
19.7.1.
key型の変種
19.7.2.
ハッシュ集合
19.8.
Rc
19.9.
Arc
20.
標準ライブラリのその他
❱
20.1.
スレッド
❱
20.1.1.
Testcase: map-reduce
20.2.
チャネル
20.3.
Path
20.4.
ファイル I/O
❱
20.4.1.
open
20.4.2.
create
20.4.3.
read lines
20.5.
子プロセス
❱
20.5.1.
パイプ
20.5.2.
dropの延期
20.6.
ファイルシステムとのやり取り
20.7.
引数処理
❱
20.7.1.
引数のパース
20.8.
他言語関数インターフェイス
21.
テスト
❱
21.1.
ユニットテスト
21.2.
ドキュメンテーションテスト
21.3.
インテグレーションテスト
21.4.
開発中の依存関係
22.
安全でない操作
❱
22.1.
インラインアセンブリ
23.
互換性
❱
23.1.
生識別子
24.
周辺情報
❱
24.1.
ドキュメンテーション
24.2.
プレイグラウンド
Light
Rust
Coal
Navy
Ayu
Rust By Example 日本語版
条件分岐
処理の流れをコントロールすることはあらゆるプログラミング言語において重要な要素です。
if
/
else
,
for
等です。Rustの文法を見ていきましょう。