これは「Rustのトレイトは『高カインド多相のない型クラス』である」のブコメに対する返信をする記事です。気になったコメントがあれば随時追加していきます。 opaupafz2.hatenablog.com
Rustのトレイト(以降Rustトレイトとつなげて呼ぶことにする)は一体何なのか、様々な他言語の概念を通して調べていたが、やっと(「やはり」でもあるのだが)結論が出たので書いていこうと思う。 また、Rustトレイトはインターフェースなのか、MixInなのか、はたまたトレイトなのかということについて書き直したかったのでそれもついでに書く。
近年、MixInやトレイトという名称の概念を持つプログラミング言語が増えてきた、が、蓋を開けてみると、実際にはそれはMixInでなかったり、トレイトではなかったりすることが多くあり、MixInやトレイトに関する混乱を招く要因になっていると思う。そこで今回は、インターフェース、MixIn、トレイトについて、それぞれどういうものなのか、書いていこうと思う。
Rustのトレイトはトレイトではないの続編的な物。というか補足。
2022/02/12 以下の記事にて書き直しました。「Rustのトレイトはトレイトではない」項をご覧ください。 opaupafz2.hatenablog.comプログラミング言語「Rust」に登場する「トレイト(Traits)」は、実はSchärli氏らが提唱しているトレイトではないという話。これについて自分は幾度となくTwitterで発言しているのだが、あまり理解・納得されるようなツイートではないと感じたので、ここでそのことについて詳細に解説することとする。