Rust入門
RustでAtCoder 可変参照|RustCoder ―― AtCoder と Rust で始める競技プログラミング入門
- 気になる
Rust ツアー - Let’s go on an adventure!
とっかかりとして
letはmutにしない限り変えられない
- でも再宣言はできるのか
usize, isize
- 配列のindexはusize
配列とスライスってのがあるのね
- 固定長かどうか
- 配列は実質タプルのn個版みたいな感じか
if、match、関数、ブロックの最後が ; のない式であれば、戻り値として使用されます。 これは値を返すための簡潔なロジックを作成するのに最適な方法で、その値は新しい変数に入れることができます。
RustのError
do_something_that_might_fail(432)?
- は、Errorを返したら
return Err(e)
になる
- は、Errorを返したら
do_something_that_might_fail(432)?
をmain()で実行してたら、mainがerrでreturnされて終了するって仕組みか
Vec
- C++のvectorと同じ感じ
- ヒープメモリへの参照をvector structが持つ
macro
- println!とかvec!とかはmacroなのね
ライフタイム
- 造られてからdropされるまでの期間のことなのは理解した
- ただ、lifetime specifierはいまいち掴めない
- lifetimeってプログラムの内容によって決まることかと思ってたけど、人為的に設定してもいいの?矛盾とか大丈夫なの?という気持ち
- static variableとかのstatic lifetimeは、プログラムの終わりまで
- データメモリに置かれるってことかな
感想
- 結構好きだな
- すっきりしている
- 少ない本質的な要素で物事をやろうとしている感じがあって綺麗(?)
- 所有権周りの制約、非同期的なコード書くのむずそう
- 結構好きだな