Rustにおける記号の役割一覧
概要: Rustにおける記号の役割をできる限り列挙する。
ASCII制御文字部門
文字 | 役割 |
---|---|
HT (水平タブ) | 空白 |
LF (ラインフィード) | 空白 文字列中の改行 シバン #! や行コメント // の終わり |
VT (垂直タブ) | 空白 |
CR (キャリッジリターン) | 空白 CRLFでLFと等価に振る舞う |
それ以外のASCII制御文字 | 用途なし |
ASCII印字可能文字部門
文字 | 役割 |
---|---|
SP (スペース) | 空白 |
! |
内部doc-comment //! , /*! 内部属性 #![] シバン #! 不等号 != 否定やビット反転 !x 否定実装 !Trait マクロ呼び出しとマクロ定義 macro! |
" |
文字列 " r" r#" バイト列 b" br" br#" |
# |
内部属性 #![] 外部属性 #[] シバン #! 生文字列/生バイト列のガード r#####" foo "##### |
$ |
宣言マクロの仮引数 $x:expr 宣言マクロの変数展開 $x 衛生的な絶対パス $crate 宣言マクロの繰り返し束縛と繰り返し展開 $($x:tt)* $($x),* |
% |
剰余 x % y x %= y |
& |
参照型 &T /&self アドレス演算子 &x 参照外しパターン &p 論理積やビットごとの論理積 x & y x &= y 短絡回路論理積 x && y |
' |
文字 ' バイト b' 生存期間 'lt |
( ) |
式・パターン・型の優先度変更 (x) タプル式・タプルパターン・タプル型 (x, y) 関数呼び出し・タプル構造体パターン・タプル構造体や列挙型のバリアントの定義・関数宣言の引数部 f(x, y) メソッド呼び出し x.f(y, z) typeof(x) クロージャトレイト用型パラメータ Fn(u8) -> u8 pub(restricted)構文 pub(self) /pub(super) /pub(crate) /pub(in somewhere) マクロ呼び出し・定義 macro!(..) 宣言マクロの腕 ( pat ) => ( tt ) 宣言マクロの繰り返し束縛と繰り返し展開 $($x:tt)* $($x),* トークンツリー |
* |
ブロックコメント /* /** /*! とその終わり */ globインポート use somewhere::*; 生ポインタ型 *const T *mut T 参照外し *x 乗算 x * y x *= y 宣言マクロの繰り返し束縛と繰り返し展開 $($x:tt)* $($x),* |
+ |
境界の併記 T: Tr1 + Tr2 + 'a Box<Tr + Send + 'a> 加算 x + y x += y 宣言マクロの繰り返し束縛と繰り返し展開 $($x:tt)+ $($x),+ |
, |
リストインポート use std::{io, cmp}; ジェネリック引数 F<T1, T2> F(T1) -> T2 where節 where T: Tr1, S: Tr2 タプル式・タプルパターン・タプル型 (x, y) 列挙型 enum E { .. , .. } 関数呼び出し・タプル構造体パターン・タプル構造体や列挙型のバリアントの定義・関数宣言の引数部 f(x, y) クロージャ |x, y| z メソッド呼び出し x.f(y, z) 配列とスライスパターン [x, y] レコード構造体や列挙型のバリアントの定義・構造体式と構造体パターン S { x, y } パターンマッチ match .. { .. , .. } |
- |
戻り値 fn() -> T |x, y| -> T { .. } 配置構文 place <- expr 指数表記 1e-3 負号演算 -x 減算 x - y x -= y |
. |
タプル・タプル構造体パターンの残り (x, y, .., z) 構造体式のデフォルト・構造体パターンの残り S { x .. y } スライスパターンの残り [x, y, .., z] 既定実装 impl T for .. {} C互換外部関数の可変長引数 fn f(x: u8, ...); 半開区間 x .. y .. y x .. .. 閉区間 x ... y フィールド x.y メソッド呼び出し x.f(y, z) 小数点 3.14 |
/ |
コメント /* */ // 除算 x / y x /= y |
0 -9 |
整数 0xF 080 0o42 0b11 浮動小数点数 0.33 識別子の一部 x0 タプル・タプル構造体のフィールド x.0 S { 0: x } |
: |
パス区切り ::x::y 関連アイテム <T as Tr>::X X::default ジェネリクス引数 T::f::<X>() 宣言マクロの仮引数 $x:expr 境界(ジェネリクス引数、スーパートレイト、where節、関連型) T<X: Clone> 型(let, const, static, 引数など) let x : T; 構造体式・パターンのフィールド S { x: y } 名前つきブロック 'a: loop { .. } |
; |
アイテムの終わり type X = u32; 文の終わり let x = 0; 宣言マクロの腕の区切り macro_rules! { .. ; .. } |
< |
ジェネリクス引数 T<X, Y> 配置構文 place <- expr 左シフト x << y x <<= y 不等号 x < y x <= y |
= |
属性 #[cfg(feature="foo")] 型引数の既定値 trait Tr<X=Self> {} 関連型束縛 Iterator<Item=i32> 等式境界 T == S T = S 関連型または型別名 type T = (); 列挙型の判別子 enum E { X = 100 } const/staticの初期化 const X : i32 = 0; let/if let/while let let x = 0; 代入 x = y 複合代入 += -= *= /= ^= &= |= >>= <<= 等号・不等号 == <= >= != パターンマッチの腕 pat => expr 宣言マクロの腕 pat => expansion |
> |
ジェネリクス引数 T<X, Y> 戻り値 fn() -> T |x, y| -> T { .. } 右シフト x >> y x >>= y 不等号 x > y x >= y パターンマッチの腕 pat => expr 宣言マクロの腕 pat => expansion |
? |
既定のSized境界の削除 T: ?Sized try構文 File::open()? |
@ |
別名パターン x @ (y, z) 廃止されたmanaged box型の記法 |
A -F a -f |
識別子の一部 Feed 16進数 0xC0FFEE b については下も参照 |
b |
バイト・バイト列 b'x' b"Foo" |
r |
生文字列・生バイト列 br##"# # #"## |
それ以外の英字 | 識別子の一部 Zoo |
[ ] |
内部属性 #![] 外部属性 #[] 配列型・スライス型 [T; 5] [T] 配列またはスライスパターン [x; 5] [x, y] 添字記法 x[i] マクロ呼び出し・定義 macro![..] 宣言マクロの腕 [ pat ] => [ tt ] トークンツリー |
\ |
エスケープ \\ \t \n \r \" \' \0 1バイトエスケープ \x7F Unicodeエスケープ \u{00007F} 改行エスケープ ( \ + 改行 + 任意個の空白) |
^ |
排他的論理和・ビットごとの排他的論理和 x ^ y x ^= y |
_ |
識別子の一部 is_some 数値リテラルの区切り文字 1_000_000_000 型推論 Vec<_> 束縛しないパターン (_, x) |
` |
未使用 (字句解析されない) |
{ } |
リストインポート use std::{io, cmp}; 構造体、共用体、列挙型のバリアント、列挙型、トレイト、実装、モジュール、外部アイテム trait X { ... } ブロック (関数定義、制御構造) loop { ... } パターンマッチ 構造体式・構造体パターン マクロ呼び出し・定義 macro!{..} 宣言マクロの腕 { pat } => { tt } トークンツリー |
| |
パターンの並列 pat1 | pat2 => expr クロージャ |x, y| z 論理和・ビットごとの論理和 x | y x |= y 短絡回路論理和 x || y |
~ |
廃止されたowned box型の記法 現在は未使用 |
Unicode制御文字・特殊文字部門
文字 | 役割 |
---|---|
NEL, LRM, RLM, LINE SEPARATOR, PARAGRAPH SEPARATOR | 空白 |
Unicode印字可能文字部門
XID_Start
, XID_Continue
属性のついている文字は識別子の一部と解釈される。