イントロダクション
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.
Enum
❱
3.2.1.
use
3.2.2.
Cライクなenum
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から変換、Stringに変換
7.
式
8.
フロー制御
❱
8.1.
if/else
8.2.
loop
❱
8.2.1.
ネストとラベル
8.2.2.
ループの返り値
8.3.
while
8.4.
forとrange
8.5.
match
❱
8.5.1.
分割代入
❱
8.5.1.1.
タプル
8.5.1.2.
enum
8.5.1.3.
ポインタ/参照
8.5.1.4.
構造体
8.5.2.
ガード
8.5.3.
バインディング
8.6.
if let
8.7.
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.
イテレータを検索
9.3.
高階関数
9.4.
発散関数
10.
モジュール
❱
10.1.
可視性
10.2.
構造体の可視性
10.3.
use宣言
10.4.
superとself
10.5.
ファイル階層
11.
クレート
❱
11.1.
ライブラリ
11.2.
extern crate
12.
Cargo
❱
12.1.
依存
12.2.
慣習
12.3.
テスト
12.4.
ビルドスクリプト
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.
New Typeイディオム
14.8.
関連要素
❱
14.8.1.
問題
14.8.2.
関連型
14.9.
幽霊型パラメータ
❱
14.9.1.
テストケース: 単位の明確化
15.
スコープのルール
❱
15.1.
RAII
15.2.
所有権とムーブ
❱
15.2.1.
可変性
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.
継承
16.2.
dynでトレイトを返す
16.3.
演算子オーバーロード
16.4.
Drop
16.5.
イテレータ
16.6.
impl Trait
16.7.
複製
16.8.
親トレイト
16.9.
重複するトレイトの明確化
17.
macro_rules!
❱
17.1.
構文
❱
17.1.1.
マクロ指定子
17.1.2.
オーバーロード
17.1.3.
繰り返し
17.2.
同じことを繰り返さない(DRY)
17.3.
ドメイン固有言語(DSL)
17.4.
可変長引数
18.
エラー処理
❱
18.1.
panic
18.2.
Optionとunwrap
❱
18.2.1.
?でOptionを解析する
18.2.2.
コンビネータ: map
18.2.3.
コンビネータ: and_then
18.3.
Result
❱
18.3.1.
Resultのmap
18.3.2.
Resultのエイリアス
18.3.3.
早期のリターン
18.3.4.
?の導入
18.4.
複数のエラー型
❱
18.4.1.
ResultをOptionから引き出す
18.4.2.
エラー型の定義
18.4.3.
エラーをBoxに入れる
18.4.4.
他の?の使い方
18.4.5.
エラーをラップする
18.5.
イテレーションでResultを扱う
19.
Stdライブラリの型
❱
19.1.
ボックス、スタック、ヒープ
19.2.
ベクター
19.3.
文字列
19.4.
Option
19.5.
Result
❱
19.5.1.
?
19.6.
panic!
19.7.
ハッシュマップ
❱
19.7.1.
独自のキーの型
19.7.2.
ハッシュセット
19.8.
Rc
20.
その他のStd
❱
20.1.
スレッド
❱
20.1.1.
テストケース: map-reduce
20.2.
チャンネル
20.3.
パス
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.
ウェイト
20.6.
ファイルシステム制御
20.7.
プログラム引数
❱
20.7.1.
引数解析
20.8.
外部関数インターフェース
21.
テスト
❱
21.1.
ユニットテスト
21.2.
ドキュメンテーションテスト
21.3.
整合性テスト
21.4.
開発時依存
22.
安全でない操作
23.
互換性
❱
23.1.
Raw識別子
24.
メタデータ
❱
24.1.
ドキュメント
24.2.
Playpen
Light (default)
Rust
Coal
Navy
Ayu
Rust By Example
フロー制御
if
/
else
、
for
などのフロー制御は、あらゆるプログラミング言語にとって 重要な要素です。Rustのフロー制御について見ていきましょう。