package main import ( "errors" "fmt" ) var errCapacity = errors.New("invalid capacity or used count") func freeSlots(capacity, used int) (int, error) { if capacity < 0 || used < 0 || used > capacity { return 0, errCapacity } return capacity - used, nil } func main() { free, err := freeSlots(12, 5) if err != nil { panic(err) } fmt.Println(free) _, err = freeSlots(4, 9) fmt.Println(errors.Is(err, errCapacity)) }