パーフェクトRust

本日読了。

辞書。

辞書ではない言語解説本は世の中に存在しないのか?データ型、関数、構造体、・・・といった章立てには飽きた。

辞書なので、ざっとみて知らなかったことをメモ。

  • enum。要素そのものに数値を付与できる。数値はデフォu8だが、#[rper]で型を変更可能。要素に付属して、タプルだけでなく、構造体も記述できる。matchで値を受け取らない場合は{..}を使う。またジェネリクスも記述可能。
  • ジェネリクトレイト。ジェネリクスを含む構造体にトレイトを実装するとエラーが出るので、std::marker::PhantomDataを使う。ジェネリクスを含む構造体にBox<dyn トレイト>型のフィールドを作ることで、ポリモーフィズムが実現できる。
  • サブトレイト。trait サブトレイト名 : トレイト名1 [ + トレイト名n]
  • mod tests 内で親モジュール参照する use super::*;
  • #[test_case] でテストに引数を入れられる。
  • 非同期ランタイムはTokioが良い。その他、Webアプリ作成向けの解説(Webフレームワーク、DB接続など)が多い。Rust本は組み込みや非同期処理の解説が多い傾向があるので、若干異質。