📝Rustの基礎文法まとめ.

とりあえずChatGPTで勉強メモ目次を生成したので気になることをつまみ食いで穴埋めしていく.

Rustコーディング規約

基本構文

変数


データ型

  • スカラー型
  • 複合型
    • タプル型
    • 配列型

関数

  • fn: 関数定義.

制御フロー

  • if文
  • アーム: if式の条件式と紐付けられる一連の処理.
  • ループ(loop, while, for)

📝所有権(rust)

Rustを代表する目玉機能.

所有権規則

  • Rustの各値は、所有者と呼ばれる変数と対応している。
  • いかなる時も所有者は一つである。
  • 所有者がスコープから外れたら、値は破棄される。

ライフタイム

Rustはスコープの範囲でメモリ獲得とメモリ解放を行う.

C言語ならばmalloc/freeのようなものはスコープやdrop関数をつかう.

ムーブ

代入のシンタックスで所有権を移動. 自動コピー.

これはshallow copyのようなもの. deep copyのようなものはclone関数で実施する.

参照と借用

📝ポインタ(C)のようなもの. 所有権は渡さない.

スライス型

構造体とEnum

構造体(struct)

列挙型(enum)

RustのEnumは📝代数データ型に近く, 🔖パターンマッチで活躍する.

パターンマッチ(match)

モジュールとクレート

📝Crates

Crates, クレートと読む. Rustソースコードをあつめたもの.

  • バイナリクレート: 実行可能ファイル.
  • ライブラリクレート: ライブラリ.
  • 外部クレート: 自プロジェクトの外のクレート.

エラーハンドリング

コレクション

  • ベクトル(Vectors)
  • 文字列(Strings)
  • ハッシュマップ(HashMaps)

ジェネリクスとトレイト

  • ジェネリクス(Generics)
  • トレイト(Traits)

非同期プログラミング

  • Futureとasync/await
  • 非同期I/O

その他の高度なトピック

  • マクロ
  • FFI(Foreign Function Interface)