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

本当は怖くない所有権の話

Avatar for saw saw
March 25, 2025
28

 本当は怖くない所有権の話

Avatar for saw

saw

March 25, 2025

Transcript

  1. Rustに置き換えると? fn read(book: &str) { println!("見せてもらった内容: {}", book); } let

    book = String::from("教科書"); read(&book); 不変参照の借用 • 所有権はbook変数 • read関数は中身を見る ことはできるが、書き 込んだりはできない • book変数も自分の教 科書を引き続き使える
  2. Rustに置き換えると? fn write(book: &mut String) { book.push_str("にメモを書く"); } let mut

    book = String::from("教科書"); write(&mut book); 可変参照の借用 • 所有権はbook変数のまま • write関数は中身を書き換 えることもできる • book変数はその間、教科 書を使えない
  3. Rustに置き換えると? fn give(book: String) { println!("受け取った教科書: {}", book); } let

    book = String::from("教科書"); give(book); 所有権の移動 • 所有権がbook変数から give関数へ完全に移る • book変数はもうその教科 書を使えなくなる • 以後、give関数が所有者に なる