Go Q & A


What is the difference between the “==” and “===” operators in Go?

In Go, the == operator is used for equality comparison between two operands of the same type. It returns true if the values on both sides are equal; otherwise, it returns false. The == operator is primarily used for comparing values of basic types, such as integers, floats, strings, and booleans.


In Go, there is no === operator. Instead, Go provides the == operator for equality comparison. The == operator is used to compare the values of two operands for equality. It returns true if the values are equal and false otherwise.


The == operator is typically used for comparing values of basic types like integers, floats, strings, etc., or for comparing values of composite types if they support equality comparison.


For example:


x := 10
y := 20
result := x == y // result will be false

It’s important to note that the == operator does not work for comparing slices, maps, functions, or other complex types directly. For comparing such types, you need to compare their individual elements or fields.


Understanding the behavior of the == operator is essential for writing correct and idiomatic Go code. It allows developers to compare values effectively and make decisions based on equality conditions within their programs.


It’s also important to note that Go does not have a === operator. The === syntax is not valid in Go, and attempting to use it will result in a compilation error. Go only provides the == operator for equality comparison, which is straightforward and consistent across different types.


Previously at
Flag Argentina
time icon
Over 5 years of experience in Golang. Led the design and implementation of a distributed system and platform for building conversational chatbots.