https://hayato.io/2017/faq/#programming
C++ への理解が足りない (というよりコンピュータの基礎がわかっていない)人にとっては、とても学習曲線が高いプログラミング言語だと思います
という文章を見て、C++も書いたことがない、コンピュータの基礎が分かっていない自分にとっては良さそうな言語だと思いやり始めることにしました。
次のコードは a
という変数よりも b
という変数のほうが寿命が短いです。
具体的には b
は let a;
の次にあるカッコ内でしか生きられないですが、aは main()
内だと生きられます。
fn main() {
let a;
{
let b = "foo";
a = &b;
}
println!("{}", a);
}
そのため先ほどのコードを実行すると寿命が足りないというエラーが出力されます。
error: `b` does not live long enough
--> prog.rs:6:5
|
5 | a = &b;
| - borrow occurs here
6 | }
| ^ `b` dropped here while still borrowed
7 | println!("{}", a);
8 | }
| - borrowed value needs to live until here
error: aborting due to previous error
Rustの標準パッケージマネージャであるCargoを使って cargo new <package name>
とすると次のようなファイルができます。
.
├── .gitignore
├── Cargo.toml
└── src
└── lib.rs
1 directory, 3 files