Junior — Middle
Can you explain what the Comparable interface is and how it is used?
sobes.tech AI
Answer from AI
In Go, the Comparable interface as a separate standard interface does not exist, but the language has a built-in capability to compare values using the == and != operators for types that support comparison.
However, if we talk about an interface that defines a method for comparing objects, a custom interface is often created, for example:
// Comparable interface with a Compare method
// Returns a negative number if the current object is less than the other,
// 0 if they are equal, and a positive number if greater.
type Comparable interface {
Compare(other interface{}) int
}
Such an interface allows implementing sorting or comparison of objects of arbitrary types.
Example of usage:
type IntWrapper int
func (a IntWrapper) Compare(b interface{}) int {
other := b.(IntWrapper)
if a < other {
return -1
} else if a > other {
return 1
}
return 0
}
Thus, the Comparable interface is a contract that requires implementing a comparison method so that objects can be ordered or compared with each other.