Rustメモ

Buy Me A Coffee

January 06, 2023


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

conststaticの違い

  • const・・・値を定義。
  • static・・・場所を定義。起動時に一度だけ初期化される

所有権

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 は所有権が移動する




© 2023 komisan19 All Rights Reserved.