Listen

Description

第98章へようこそ。

今日のテーマは「マーカートレイト」です。

第94章でSizedを学びました。第97章でSendとSyncを学びました。これらには共通点がある。メソッドが一つもない。

Iteratorにはnextがある。Displayにはfmtがある。Dropにはdropがある。

しかしSized、Send、Syncにはメソッドがない。

メソッドがないのに、何のために存在するのか。

型の性質をコンパイラに伝えるためです。「この型はこういう性質を持つ」と宣言する。コンパイラはこの宣言を使って、安全でないコードを拒否する。

こうしたトレイトを、マーカートレイトと呼びます。

今日は、Sized、Send、Syncに続くマーカートレイトとして、CopyとUnpinを掘り下げ、マーカートレイト全体の仕組みを俯瞰します。