Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rustを布教したい

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for noharu36 noharu36
December 01, 2025

 Rustを布教したい

Avatar for noharu36

noharu36

December 01, 2025
Tweet

More Decks by noharu36

Other Decks in Programming

Transcript

  1. 自己紹介 { name: 能島明希 handle: harukun origin: 広島->岡山->大阪->東京->会津 tech: {

    front-end: React+TS backend: Rust, Go etc: Rust, Haskell Rust: Rust } favorites: Game, Tobacco, BoyScout, Rust, Neovim Twitter(x): https://twitter.com/pieceofharuki Blog: https://zenn.dev/haru_blog }
  2. 所有権 メモリの安全性を保証するための Rustの大きな特徴の一つ • 各値は所有者と呼ばれる変数と対応する (値を束縛する、という) • 一度に存在できる所有者は一つだけ( let s2

    = s1で、メモリを2倍消費することがない) • 所有者がスコープを外れると値は破棄される • 所有権を移動させずに値にアクセスするために参照・借用を使う(関数の引数に参照をとることを借用と いう) • 可変参照はスコープ内で一つだけという制約がある
  3. 実行結果はどうなるでしょう? 結果 1, 11, 2, 12, 3, 13, 4, 14,

    5, 15
 mapが内部で処理の中間状態を表すMap構造体を作成して いる
 Mapを生成する時にMap::new(self, f)のようにselfを巻き込む ため、mapを2回呼び出すと再起的な構造になる
 ちなみにmapはイテレータを生成するだけなので計算は collect()を読んだ時に行われる(遅延評価)