Go 1.27 allows type parameters on methods, with interface methods still excluded
Generic methods let types such as a list offer Map-style calls that chain left to right, instead of package-level helper functions.
The Go team explained that Go 1.27 adds generic methods, meaning concrete methods can now declare their own type parameters. Since generics arrived in Go 1.18, only functions and types could be parameterized, not methods.
The post uses a linked list as an example. A method such as Map[R any] can convert a List[E] into a List[R], and calls can be chained from left to right instead of nested inside out as with a generic MapList function. Method expressions can still turn such a method into a plain function if that style is preferred.
The team frames methods as a way to organize code around a type, not only a way to implement interfaces. That view lets generic concrete methods be useful even though they cannot satisfy an interface.
Generic interface methods remain unsupported. The authors explain that separately compiled packages would force the compiler to instantiate a method for every possible type argument, which does not fit Go's approach to generating code per instantiation.
Developers on Go 1.27 can move helper functions that currently live at package scope onto their types where it reads better. Code that needs a generic method in an interface will still need another design.
Sources
- Generic Methodsofficial
Verified Oct 24, 2026 (official source). gogenericslanguagerelease