Nils Kasseckert
Go Generics
#1about 1 minute
Understanding the basics of generic programming in Go
Generic programming allows you to write type-independent code, which was introduced in Go 1.18 with type parameters, type sets, and type inference.
#2about 4 minutes
Using type parameters to write type-independent functions
Type parameters, declared in square brackets, allow a single function to operate on multiple numeric types, eliminating code duplication.
#3about 1 minute
Simplifying functions with predefined type constraints
Go provides built-in constraints like `constraints.Integer` and `constraints.Float` to easily define what types a generic function can accept.
#4about 5 minutes
Defining custom type constraints using interfaces and typesets
Interfaces now define a set of types, not just methods, and the tilde (~) operator can be used to include a type's underlying types in a constraint.
#5about 3 minutes
Nesting and simplifying constraints with the 'any' keyword
Type constraints can be restricted by other constraints, and the `any` keyword serves as a convenient alias for an empty interface to simplify declarations.
#6about 6 minutes
How Go uses function argument and constraint type inference
The compiler can infer type arguments from function parameters, but they must be specified explicitly for types used only in return values.
#7about 3 minutes
A practical example of loading YAML files with generics
A generic function can load YAML data into any struct, but using the `any` constraint sacrifices compile-time type safety.
#8about 1 minute
Using marker interfaces to enforce type safety with generics
A marker interface with a unique method can be used as a type constraint to ensure only intended structs are passed to a generic function.
#9about 1 minute
Key takeaways and summary of Go generics
Generics in Go 1.18 use type parameters and constraints to create flexible functions, supported by type inference to simplify calls.
#10about 1 minute
Q&A: The trade-offs of losing type safety
Using generics without proper constraints can lead to a loss of type safety, but the benefit is often less and more readable code.
Related jobs
Jobs that call for the skills explored in this talk.
Wilken GmbH
Ulm, Germany
Senior
Kubernetes
AI Frameworks
+3
MARKT-PILOT GmbH
Stuttgart, Germany
Remote
€75-90K
Senior
Java
TypeScript
+1
Matching moments
02:49 MIN
Using AI to overcome challenges in systems programming
AI in the Open and in Browsers - Tarek Ziadé
04:05 MIN
How AI code generators have become more reliable
AI in the Open and in Browsers - Tarek Ziadé
03:31 MIN
The value of progressive enhancement and semantic HTML
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
02:33 MIN
Why you might not need JavaScript for everything
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
09:00 MIN
Navigating the growing complexity of modern CSS
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
05:17 MIN
Shifting from traditional CVs to skill-based talent management
From Data Keeper to Culture Shaper: The Evolution of HR Across Growth Stages
05:55 MIN
The security risks of AI-generated code and slopsquatting
Slopquatting, API Keys, Fun with Fonts, Recruiters vs AI and more - The Best of LIVE 2025 - Part 2
14:06 MIN
Exploring the role and ethics of AI in gaming
Devs vs. Marketers, COBOL and Copilot, Make Live Coding Easy and more - The Best of LIVE 2025 - Part 3
Featured Partners
Related Videos
Lies we Tell Ourselves As Developers
Stefan Baumgartner
C++ Features You Might Not Know
Jonathan Müller
Advanced Typing in TypeScript
Lars Hupel
Where we're going we don't need JavaScript - Programming with Type Annotations
Peter Kröner
Don't compromise on speedy delivery nor type-safety by choosing TypeScript
Jens Claes
101 brilliant things of C++
Andreas Fertig
Concurrency with Go
Frank Müller
Hello generics, goodbye boilerplate!
Miroslav Jonaš
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.

Gain
Amsterdam, Netherlands
Senior
API
Terraform
PostgreSQL
Google Cloud Platform

Delivery Hero AG
Berlin, Germany
Go
Python
Docker
Grafana
Prometheus
+2

FERCHAU GmbH
Bielefeld, Germany
Go
API
Azure
Microservices
Amazon Web Services (AWS)

Colibrix One
Barcelona, Spain
€60-90K
Intermediate
Go
API
REST
NoSQL
+8




