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 日本語版
構文
以下のサブセクションでは、Rustにおいてマクロを定義する方法を示します。 3つの基本的な考え方があります:
パターンと識別子
オーバーロード
繰り返し