Go Operators
Estimated reading: 3 minutes 367 views

Go Relational Operators – Compare Values in Go with Examples (2025 Guide)

Introduction – What Are Relational Operators in Go?

Relational operators in Go are used to compare two values. The result of a relational operation is always a boolean (true or false). These comparisons are fundamental in decision-making, such as in if statements, loops, or filtering logic.

In this section, you’ll learn:

  • All relational operators available in Go
  • Syntax with examples and outputs
  • Comparison rules for different data types
  • Real-world use cases and edge cases

List of Relational Operators in Go

OperatorDescriptionExampleOutput
==Equal to5 == 5true
!=Not equal to5 != 3true
>Greater than7 > 5true
<Less than3 < 9true
>=Greater than or equal to6 >= 6true
<=Less than or equal to4 <= 5true

These work for numbers, strings, and booleans (with some constraints).


Syntax – Using Relational Operators

package main

import "fmt"

func main() {
    a, b := 10, 20

    fmt.Println(a == b)  // false
    fmt.Println(a != b)  // true
    fmt.Println(a < b)   // true
    fmt.Println(a > b)   // false
    fmt.Println(a <= b)  // true
    fmt.Println(a >= b)  // false
}

Output:

false
true
true
false
true
false

String Comparisons in Go

Go compares strings lexicographically (dictionary order based on Unicode values).

fmt.Println("apple" < "banana") // true
fmt.Println("Go" == "Go")       // true

Go is case-sensitive: "Go" != "go"


Boolean Comparisons

You can compare boolean values only with == or !=.

var a, b bool = true, false
fmt.Println(a == b)  // false
fmt.Println(a != b)  // true

You cannot use <, >, <=, >= with booleans — it will cause a compile-time error.


Real-World Example – Age Checker

package main

import "fmt"

func main() {
    age := 17

    if age >= 18 {
        fmt.Println("Eligible to vote.")
    } else {
        fmt.Println("Not eligible to vote.")
    }
}

Output:

Not eligible to vote.

Common Mistakes

MistakeFix
Mixing different types (e.g. int and string)Ensure both operands are same type
Using > on booleansUse only == or != for bools
Using assignment = instead of equality ==Double-check operators in conditions

Summary – Recap & Next Steps

Relational operators in Go help control program flow through comparison logic. Use them in conditionals, loops, filters, and validation logic.

Key Takeaways:

  • Use ==, !=, >, <, >=, <= for comparisons
  • Strings are compared lexicographically
  • Booleans support only == and !=
  • Always ensure operand types match for valid comparison

Next: Learn about Go Logical Operators (&&, ||, !) to combine multiple relational expressions.


FAQs – Relational Operators in Go

Can I compare different data types like int and string in Go?
No. Go requires both operands to be of the same type. You must convert explicitly.

Are relational operators allowed on structs or arrays?
Only == and != are allowed on comparable types (not slices, maps, or functions). Others like > are not valid for structs.

How are strings compared in Go?
Strings are compared by Unicode value, character by character.

Can I use relational operators on booleans?
Only == and != are valid for booleans. <, >, etc., will cause an error.

What does x <= y mean in Go?
It checks if x is less than or equal to y. It returns a boolean result.


Share Now :
Share

Go Relational Operators

Or Copy Link

CONTENTS
Scroll to Top