Constraints

Let’s get an overview of the constraints in Go and how they are utilized.

We'll cover the following

Let’s say that we have a function that works with generics that multiplies two numeric values. Should this function work with all data types? Can this function work with all data types? Can we multiply two strings or two structures? The solution for avoiding that kind of issue is the use of constraints.

Forget about multiplication for a while and think about something simpler. Let us say that we want to compare variables for equality—is there a way to tell Go that we only want to work with values that can be compared? Go 1.18 is going to come with predefined constraints—one of them is called comparable and includes data types that can be compared for equality or inequality.

Coding example

The code of allowed.go illustrates the use of the comparable constraint:

Get hands-on with 1200+ tech skills courses.