Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

Rustを布教したい

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()を読んだ時に行われる(遅延評価)