Generics
Part of the Go course
You write a function that finds the largest number in a slice of int. Then you need one for float64, so you copy it and change two words. Then one for string. Now three near-identical functions exist, and when you fix a bug in one, you get to remember the other two.
For most of its life Go had no clean answer to this. You either duplicated the function, or you used interface{}, which accepted anything and gave up all type checking, so the compiler could no longer tell you that you had passed a slice of the wrong thing. Duplication or blindness, pick one.
Want to learn Go Generics in a real environment?
Click below, get a fresh Linux box with Go ready to go, and work through Generics hands-on with an AI tutor that knows your code.
Start this lessonGenericsWhat you'll learn
- Type parameters with [T any]
- Constraints
- Comparable
- Tilde approximation ~int
- Generic Map and Filter
- When generics help, when they do not
