Rust
コマンドラインツールを作るために。
単体テストと結合テスト。
cargo testのコマンド引数。
assert_eq!マクロや#[should_panic]注釈など。
非常に見づらいコードになった。
生存期間はプログラム終了まで。(他言語でいうグローバル変数)
ライフタイム省略規則のときにサラッと流したので改めて。
引数がひとつであり、その参照を返すとき、引数と戻り値のライフタイム注釈は省略できる。
構造体のフィールドに参照をもたせる。
Rustにおける難関のひとつらしい。
C#やJavaでいうインタフェースに類似した機能。
特定の型ではなく全ての型を示す方法。
panic!(), Result(Ok<T>,Err<E>)の2種類。</e></t>
Vec, String, HashMap。
使い方がややこしい。C#のほうが直感的。
文字列型はなんと6種類もある。
Vector。可変配列。
複雑すぎて理解不能なので簡単にまとめてみた。
この辺、細かい説明がなくてよくわからんかった。ので、使ってみた。
pubを付与すると公開(public)される。pubがなければ非公開(private)。
モジュールとは、関数、列挙、構造体などの定義をグルーピングする単位、だと思う。
サクッとできてしまう。
用語が多いので一旦まとめる。
短く書ける。
#[derive(Debug)]と{:?}で楽していたところを自前で実装してみる。
NULLのせいで数々のバグが生まれ膨大な損失を被った、という話をRust学習中にはじめて知った。
他言語でいうNULLを使いたいときはこれ。
C/C++にあるswitch文の上位互換みたいなやつ。
C/C++/C#などと比べてパワフル。
クラスっぽい。