Core Typesからの脱却 - Go言語を愛してきたままの姿へ
著者: Robert Griesemer
公開日: 2025年3月26日
原文: https://go.dev/blog/coretypes
Go 1.18リリースではジェネリクスが導入され、それと共に型パラメータ、型制約、型セットといった新たな概念など、多くの新機能が追加されました。また、core type(コア型)という概念も導入されました。前者は具体的な新機能を提供する一方で、core typeは抽象的な構造で、利便性のため、そしてジェネリック操作数(型パラメータである操作数)を扱いやすくするために導入されました。Goコンパイラでは、過去に操作数の基底型に依存していたコードが、代わりに操作数のcore typeを計算する関数を呼び出すようになりました。言語仕様では、多くの場所で「基底型」を「core type」に置き換えるだけで済みました。何の問題があるでしょうか?
実は、かなり多くの問題があることが判明しました!ここにたどり着いた経緯を理解するために、型パラメータと型制約がどのように機能するかを簡単に振り返ってみましょう。
目次
ライセンス
本記事は Go公式ブログ の記事を翻訳したものです(© The Go Authors)。原文は CC BY 4.0 の下で公開されています。