ZigにRustのtraitはない? それなら自分で作ればいい

We have traits at home

ZigにRustのtraitはない? それなら自分で作ればいい

Zigのポリモーフィズムは動的インターフェースかcomptimeのダックタイピングの二択で、Rustのtraitのような型契約は標準では存在しない。著者は関数の束をcomptimeのstructとしてまとめる「Trait」という規約を提案する。ライブラリ不要でvanillaなZigに自然に馴染み、コンパイラはモノモルフィズしてインライン化できる。Möbius変換を例に、動的ディスパッチのオーバーヘッドなしで抽象化を表現する手法を解説する。

Traitは関数と型の束にすぎず、受け取る関数に対して、自分では定義しないサブタスクの実行方法を伝えるものだ。vtableとよく似た振る舞いをするが、評価されるのはruntimeではなくcomptimeである。

この日のほかの記事

2026-10-23