＃ 概要

Rustはキーワードを3つのカテゴリに分割します。
 - 厳密なキーワードは、正しいコンテキストでのみ使用できるキーワードであり、アイテム、変数、フィールド、バリアント、タイプ、生涯パラメーターの名前として使用できないキーワードです。
 - 予約済みのキーワードは、まだ使用されていないキーワードですが、将来の使用のために予約されており、厳格なキーワードと同じ制限があります。現在のところ、予約済みのキーワードは「抽象」、「bebe」、 `box`、` do`、 `final`、` macro`、 `override`、` priv`、 `typeof`、` unsize'、 `virtual`です。、「譲歩」し、現在のように意味がありません。
 - 弱いキーワードは、特定のコンテキストでのみ特別な意味があります。

＃ 厳しい

|キーワード|説明|
| ---------- | ------------- |
|`as` |タイプ間のキャスト、ポインター、アドレス変換、またはインポートの名前の変更に使用されます|
|`break` |ループから早期に終了するために使用されます|
|「const」|コンパイル時間定数、コンパイル時間評価可能な関数、および生のポインターに使用|
|「続行」|ループの次の反復にスキップ|
|「クレート `|「extern」減速の一部として使用することができ、モジュールを指定する際に「パブ（クレート）」を備えた自分のクレートの他のメンバーにアイテムを公開すること、または現在のクレートのルートとして使用することができます|
|「else」|「if」条件が「false」と評価されるときに評価する式|
|`enum` |いくつかのバリエーションのいずれかになる可能性のあるタイプ|
|`extern` |外部コードへのリンクまたはインポート|
|「false」|論理** false **を表すタイプ「bool」の値。それは「True」の反対です|
|`fn` |関数または関数ポインター|を宣言します
|`for` |loopsで使用され、 `inpl特性のように特性を実装する場合|
|「if」|条件が保持されている場合はブロックを評価します|
|「empl」|タイプのいくつかの機能を実装します|
|「in」|「for」で一連の値を反復|
|`let` |値を変数にバインドします|
|「ループ」|ループは無期限に|
|「一致」|パターンマッチングに基づく制御フロー|
|`mod` |新しいモジュールを作成するために使用されます|
|「動き」|値によって閉鎖の環境をキャプチャします|
|`mut` |変数、参照、またはポインターを可変と宣言する|
|「パブ」|アイテムを他の人に見えるようにします|
|`ref` |パターンマッチング中に参照によりバインド|
|「return」|関数から値を返します|
|「自己」|「特性」または「実装ブロック」内の実装タイプ、またはタイプ定義内の現在のタイプ|
|「静的」|静的アイテムは、プログラムの全期間（ `'static` lifetime）に有効な値です|
|`struct` |他のタイプで構成されるタイプ|
|「スーパー」|現在のモジュールの親|
|「特性」|タイプのグループの共通インターフェイス|
|`true` |論理** true **を表すタイプ「bool」の値。それは「false」の反対です|
|「タイプ」|既存のタイプのエイリアスを定義します|
|「安全でない」|タイプシステムでメモリの安全性を検証できないコードまたはインターフェイスを許可します|
|「use」|他の木枠またはモジュールからアイテムをインポートまたは名前変更します|
|「while」|条件が支持されている間にループ|

＃ 弱い

|キーワード|説明|
| ---------- | ------------- |
|`macro_rules` |カスタムマクロを作成するために使用されます|
|「ユニオン」|組合を宣言するために使用され、組合宣言で使用される場合のみキーワードです|
|`'static` |静的寿命に使用され、一般的な寿命パラメーターまたはループラベルとして使用することはできません|

特定のキーワードに関する詳細情報が必要な場合は、[標準ライブラリドキュメント]（https://doc.rustlang.org/std/index.html#keywords）でドキュメントと例を見つけることができます。
# Overview

Rust divides keywords into three categories:
- Strict keywords are keywords that can only be used in their correct contexts and cannot be used as names of items, variables, fields, variants, types, lifetime parameters, loop labels, macros, attributes, macro placeholders, or creates.
- Reserved keywords are keywords that aren't used yet, but they are reserved for future use and have the same restrictions as strict keywords. As of now the reserved keywords are `abstract`, `become`, `box`, `do`, `final`, `macro`, `override`, `priv`, `typeof`, `unsized`, `virtual`, and `yield` and do not have any meaning as of now.
- Weak keywords have special meaning only in certain contexts.

# Strict

| Keyword | Description |
|----------|-------------|
| `as` | Used to cast between types, pointer and address conversion, or rename an import |
| `break` | Used to exit early from a loop |
| `const` | Use for compile-time constants, compile-time evaluable functions, and raw pointers |
| `continue` | Skip to the next iteration of a loop |
| `crate` | Can be used as a part of a `extern` deceleration, to make an item public to other members of own crate with `pub(crate)`, or as the root of the current crate when specifying a module |
| `else` | The expression to evaluate when an `if` condition evaluates to `false` |
| `enum` | A type that can be any one of several variants |
| `extern` | Link to or import external code |
| `false` | A value of type `bool` representing logical **false**. It is the opposite of `true` |
| `fn` | Declares a function or function pointer |
| `for` | Used in for-in-loops and when implementing traits as in `inpl Trait for Type` |
| `if` | Evaluate a block if a condition holds |
| `impl` | Implement some functionality for a type |
| `in` | Iterate over a series of values with `for` |
| `let` | Bind a value to a variable |
| `loop` | Loop indefinitely |
| `match` | Control flow based on pattern matching |
| `mod` | Used to create new modules |
| `move` | Capture a closure’s environment by value |
| `mut` | Declare a variable, reference, or pointer as mutable |
| `pub` | Make an item visible to others |
| `ref` | Bind by reference during pattern matching |
| `return` | Return a value from a function |
| `Self` | The implementing type within a `trait` or `impl` block, or the current type within a type definition |
| `static` | A static item is a value which is valid for the entire duration of your program (a `'static` lifetime) |
| `struct` | A type that is composed of other types |
| `super` | The parent of the current module |
| `trait` | A common interface for a group of types |
| `true` | A value of type `bool` representing logical **true**. It is the opposite of `false` |
| `type` | Defines an alias for an existing type |
| `unsafe` | Allows code or interfaces whose memory safety cannot be verified by the type system |
| `use` | Import or rename items from other crates or modules |
| `while` | Loop while a condition is upheld |

# Weak

| Keyword | Description |
|----------|-------------|
| `macro_rules` | Used to create custom macros |
| `union` | Used to declare a union and is only a keyword when used in a union declaration |
| `'static` | Used for the static lifetime and cannot be used as a generic lifetime parameter or loop label |

If you require more detailed information about any specific keyword you can find documentation and examples at the [Standard Library Documentation](https://doc.rust-lang.org/std/index.html#keywords) or just by asking.