読者です 読者をやめる 読者になる 読者になる

Owership #2

rust

https://doc.rust-lang.org/book/ownership.html

単一(スカラ?)な変数はコピーなので、代入元でも代入先でも使えるが、 複数(ベクタ)の要素の変数は参照なので、代入先では使えるが、代入元では使用不可とするみたいな話なのかな。

let a = 3;
let v1 = vec![1,2,3];

let b = a;

println!("{}, {}", a, b); // 代入元(a)、代入先(b)どちらもOK

let v2 = v1;

// println!("{}", v1[0]); // 代入元(v1)はダメ
println!("{}", v2[0]);  // 代入先(v2)はOK