なぜGoのジェネリクスはこの形なのか? - Featherweight Goが明かす設計の核心
しかし、新しい概念の追加される点やすでに interface という型の振る舞いを定義できるものがあったため撤回された
e.g. モデル
Featherweight Java
FJ
FGJ
Featherweight Go
FG
FGG
ジェネリクス設計における設計思想
ジェネリックなコードをどのように変換するかを定式化
要件
使いしやすく理解しやすい
ランタイムコストが低い
可能な限り保守的な拡張である
方針
構造的サブタイピングとジェネリクスの組み合わせ
FG
Go
FGG
FG を拡張し、Structs、Methods、Interfaces が 型パラメータ を持つ コンパイル戦略
Featherweight Java とは異なる
https://gyazo.com/f093f93d8ecacfed89c0e59ae3ec5dd4
ダミーメソッドが生成される理由
...