Weekly Report 2020/10/04

週報2回目です。毎週日曜日に更新するつもりでしたが早速すっぽかしました。

今週は Hacktoberfest が始まっていろんな意味でOSS界隈が盛り上がりました。僕もTシャツ狙って軽めのタスクを一気にやったのですが、あとから Hacktoberfest の対象になるためには opt-in する必要があるということになって、少し悲しい……

Rust のトレイトで、associated type (関連型) か generic type (ジェネリクス) のどちらを使うか迷ったときの指針

Rust にトレイトという機能があります。 自分でトレイトを作るときに、そのトレイトに関連するジェネリックな型が欲しくなることがしばしばあります。そんなときの選択肢として

  1. associated type (関連型)
  2. generic type (ジェネリクス、型パラメータ)

の2つがあると思います(2番に関しては、正しい呼称かどうか自信がないです。trait Foo<T> {} と定義したときの T のことを指しています)。そして、どちらを使っても自分のやりたいことを実現できるな……と気づくことがあります。そのようなときに、どちらを使うのが良いのか分からなくなることがよくあるので、忘れないようにエントリとしてまとめておきます。