Rustメモ

publish: 2023-01-06

Rust を勉強していて、よくわからなくなったところのメモ(更新していくかも)

conststaticの違い

所有権

fn main(){
let name = String::from("Hello");
let name2 = name;
// error
// println!("name is {}", name);
println!("name2 is {}", name2);
}

上記の error となっている箇所は、コンパイルエラーになってしまいます。

理由は変数 name のHelloという文字列の所有権がないためです。

所有権のメリット

変数の書き換えや利用を制限できる。

所有権の移動がない特定の型

プリミティブ型とタプル型は所有権の移動がしない 上記二つの型は移動ではなく、Copy されてる

文字列は Copy と Move どちらもある

Rust の文字列はstrStringの二つがある。

str はプリミティブ型なので所有権の移動は行われない。

String は所有権が移動する