Open3
Rust へーって思ったこと
Rustのエラーハンドリングの階層スキーム
- Option
- Result
- スレッドの巻き戻し(panic)
- アボート
https://doc.rust-jp.rs/rust-nomicon-ja/unwinding.html
panic!とResultの使い分け
Trait の coherenceとorphan rule がわからない
トレイトと構造体が定義されている場所によって挙動が変わる。
この問題は PartialEq
とu32
が外部クレートだったのでそのままだとダメだった。次の問題にも書かれてるようにラッパーを作らないとダメ
サイト
引数の受け取り方まとめ
可変参照
- 渡された値を関数の中で書き換えるとき
- 他の関数に可変参照を渡す必要があるとき
値
- 関数の中で値の所有権が必要なとき
- コピーセマンティクスの値を受け取るとき
不変参照
- 上記にあてはまらないとき
基本的に不変参照と考えておけばつまづかなくて済む。初めの方は所有権が仮引数に移動されるからわざわざ&をつけると考えていたが、初めから&がデフォルトと考えるのもアリ