#Rust
17 件の記事
Rust 基礎講座 #5 構造体と列挙型 — match と Option、null がない言語の設計
データを構造化する 2 本の軸、構造体(struct)と列挙型(enum)を扱います。impl ブロックでメソッドを付ける方法、バリアントごとに異なるデータを持てる Rust 列挙型の表現力、すべてのケースを検査したかをコンパイラが強制する match、そして null の代わりに「値がないかもしれない」を型で表す Option まで、Rust コードの骨格になる道具を扱います。
Rust 基礎講座 #4 参照と借用 — & と &mut、借用規則のコンパイルエラーを解決する
所有権を移さずに値を使う参照(&)と可変参照(&mut)を扱います。「不変参照はいくつでも、可変参照は 1 つだけ」という借用規則が何を防ぐのか(反復中の変更、データ競合)、cannot borrow as mutable エラーの読み方と直し方、解放済みメモリを指すダングリング参照がコンパイル段階で遮断される構造、そして &str とスライスまで扱います。
Rust 基礎講座 #3 所有権 — move が既定の言語、GC なしでメモリが解放される仕組み
Rust の心臓である所有権を正面から扱います。すべての値に所有者が 1 つだけという 3 つの規則、代入と関数呼び出しで値が移動(move)した後に元の変数が使えなくなる理由、スタックに収まる固定サイズ型だけが持つ Copy、コストがコードに現れる clone、そしてスコープの終わりで自動的に解放される drop まで、use-after-free がコンパイルエラーに変わる構造を扱います。
Rust 基礎講座 #2 変数と型 — let と mut、シャドーイング、式で終わる関数
不変が既定の let と、明示的に付ける mut の意味から始めます。同じ名前を再宣言するシャドーイングがなぜ実務のイディオムなのか、整数・浮動小数点・bool・char のスカラー型とオーバーフローの挙動、タプルと配列、そしてセミコロン 1 つで文と式が分かれる Rust の関数の戻り値規則まで扱います。
Rust 基礎講座 #1 Rust とは — 学ぶ理由、rustup のインストールと cargo の最初の一歩
カーネルから CLI ツールまで Rust が急速に広がった理由である「GC なしのメモリ安全」が何を意味するのかから始めます。安全と性能がトレードオフだった既存言語との違い、rustup の 1 行インストール、cargo でプロジェクトを作って実行する基本サイクル、最初のコンパイルエラーメッセージの読み方、そして講座全体の地図まで扱います。