はじめに
転職した会社でRustの勉強会をしていて
NO IMAGEThe Rust Programming Language 日本語版 - The Rust Programming Language 日本語版
を読むことになった。
みんなめっちゃ進んでる、おいつきたい
ちなみにhttps://machidapm.connpass.com/event/372605/ に参加しているため、
blogに残すことにした
今日読む場所
構造体を読む
お勉強
所感
- このblogの表示環境がなくて、nix-shellでhugoを導入した
- 町田.pmで連絡が取れなくなるのでDiscordをnixで入れた
- さっきまで実は書いていたのだが、興味でvimのmdのformatterを導入したら全部消えてしまった
- 復習
- タプル構造体って意味あるんか?
- タプルでいいじゃん
struct Color(i32, i32, i32);
struct Point(i32, i32, i32);
let black = Color(0, 0, 0);
let origin = Point(0, 0, 0);
-
なるほど型指定するならタプルじゃだめか
-
型安全が保証されるのはいいじゃん
-
構造体に定義するものは全て所有権が欲しいらしい
-
ここで文字列につまずく
- 文字の型が難しくない?
-
私の理解ではこうな次った(gemini作)
| 型/キーワード | 性質 (Description) | メモリ領域 (Memory Location) | 所有権 (Ownership) | 変更可能性 (Mutability) | 初期化タイミング |
|---|---|---|---|---|---|
&str |
文字列スライス(参照) | 参照元による (静的/ヒープ) | 所有しない (Borrow) | 不変 (Immutable) | 参照元の定義による |
String |
所有された文字列 | ヒープ (Heap) | 所有する (Owner) | mutで変更可能 |
実行時 (Runtime) |
const |
定数 | 静的領域 (Static) | N/A (所有権の対象外) | 不変 (Immutable) | コンパイル時 (Compile Time) |
- 所々の単語が私の言葉ではないが、概ねこんな感じだろう
まとめ
- あまり構造体を使うような言語を利用したことがなかったが、かなり便利だと思った
- 型安全であることがとても良いし、構造体でドメインの大枠を表現できるのも好感
- 次はenumにいくぞおおおおおお
おまけ
- 本当に事務処理とかがないならNixOSでいいな、本当に