2021-03-19

[Rust] 用語集

Rust

Rustの用語集

executor:ポーリングを繰り返しながら実行する非同期ランタイム
NaN:不正な値を示す 該当(0.0/0.0) 性質(NaN!=NaN 任意の値と不一致)
Rustacean:Rustプログラマの自称(crustacean:甲殻類に由来)
依存:コードが必要とするライブラリ
関連関数型自体に実装された関数
クレート:Rustプログラムのパッケージのこと
健全性unsafeを使わないコードは未定義動作を起こさないという性質
コアライブラリ:最も根幹にあるもので、他のシステムライブラリやプラットフォームに依存しない最小限の機能を備えたライブラリ
サブモジュール:モジュール配下のモジュール
 mod_a.rs   // モジュール(ここにmod mod_b;と記載/複数可)
 mod_a/     // 上ファイルと同名のフォルダ
 | mod_b.rs // mod_aのサブモジュール(複数可)
 | 同様にしてサブモジュールのサブモジュールも作成可能
参照:条件(所有権より寿命が短いこと 不変参照は複数可 可変参照は1つのみ:同時に不変も不可)
ジェネリクス:実行時、関数を要求される型の組み合わせ分だけ複製し、高速に動作させる
識別子:該当(関数名 変数名 引数名 構造体のフィールド名 モジュール名 クレート名 定数名 マクロ名 静的な値の名前 属性名 型名 トレイト名 ライフタイム名)
借用:所有権ではなく、参照する権利だけを与えること
シャドーイング:同名の変数を重ねて宣言することで、覆い隠すこと
所有権:各値の所有者は1つだけという規則(スコープから外れたら値は破棄される)
トレイト:共通の振る舞いを取り出して名前を付けたもの
生識別子:普段は使うことが許されないキーワードを使わせてくれる構文(直前にr#を付ける) fn r#match(){..} 使用ケース(2015 editionではキーワードでなかったtryが関数として使われている場合など、r#tryを使う)
発散する関数:戻り値の型が(存在しない)!の関数
フィーチャ:クレートにオプションの機能を提供させるための仕組み
フィーチャゲート:Rustがコンパイラ、言語、標準ライブラリのフィーチャを安定化させるために使う仕組み
フェリス(Ferris):Rustコミュニティの非公式マスコット(ferrous:鉄に由来)
マーカトレイト:メソッドのない、それぞれの持つ意味や役割をしるしのように付与するトレイト データを含まないため実行時にもメモリ内にデータが存在しないが、コンパイラが安全性の検査や最適化をする際に使用する 該当(Copy Send Sized Sync)
未定義動作:アプリがライブラリやコンパイラの規約を守らなかったため、どのような動作結果も保証されない状態
モジュール:クレートより一段階小さな構成要素/modで定義(Rustでは基本的に1つのソースコード/ファイルが1つのモジュールとして扱われる)
ライフタイム:安全に値を利用できる期間のこと(寿命はレキシカルスコープではなく、値が使われている範囲で考慮される)

記号

:::関連関数
; :式の終わりを示す
? :Result? // Ok(T)時はTを、Err時はそれをreturn(主に関数内で使用/エラー委譲)