はじめに
1.
Hello World
❱
1.1.
コメント
1.2.
フォーマットして出力
❱
1.2.1.
Debug
1.2.2.
Display
❱
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.
イテレータによる検索
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.
依存関係
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.
ニュータイプイディオム
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.
トレイトの曖昧性解決
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.
コンビネータ:map
18.3.3.
コンビネータ: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.
キー型の変種
19.7.2.
ハッシュ集合
19.8.
Rc
19.9.
Arc
20.
標準ライブラリのその他
❱
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.
安全でない操作
❱
22.1.
インラインアセンブリ
23.
互換性
❱
23.1.
生識別子
24.
周辺情報
❱
24.1.
ドキュメンテーション
24.2.
プレイグラウンド
Light
Rust
Coal
Navy
Ayu
Rust By Example
English
日本語
中文
制御フロー
処理の流れをコントロールすることはあらゆるプログラミング言語において重要な要素です。
if
/
else
、
for
等です。Rustの文法を見ていきましょう。