🔍 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
| Operator | Description | Example | Output |
|---|---|---|---|
== | Equal to | 5 == 5 | true |
!= | Not equal to | 5 != 3 | true |
> | Greater than | 7 > 5 | true |
< | Less than | 3 < 9 | true |
>= | Greater than or equal to | 6 >= 6 | true |
<= | Less than or equal to | 4 <= 5 | true |
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
| Mistake | Fix |
|---|---|
Mixing different types (e.g. int and string) | Ensure both operands are same type |
Using > on booleans | Use 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 :
