目次

Rustの勉強[構造体編]

(更新: )ぎじゅつ

はじめに

#

転職した会社で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でいいな、本当に