
In this part of the Golang Backend Real-World series, we explore the foundational concepts that power every Go backend application: variables, data types, and constants.
Whether you’re building REST APIs, microservices, or CLI tools, these concepts appear everywhere in real-world Golang code.
1. Variables in Go
Variables store values that can change throughout the lifecycle of a program. Go is statically typed, meaning each variable has a specific type determined at compile time.
1.1 Declaring variables using var
var name string = "Leaf"
var age int = 30
This is the most explicit form of variable declaration in Go.
1.2 Declaring variables without initialization (zero values)
Go assigns a zero value when no initial value is provided:
var message string // ""
var count int // 0
var active bool // false
This prevents undefined or null-type issues.
1.3 Short declaration (:=)
Commonly used inside functions for cleaner code:
title := "Golang Tutorial"
views := 102
enabled := true
Go infers the type automatically.
1.4 Declaring multiple variables
var a, b, c = 1, 2, 3
Or in block format:
var (
username = "admin"
attempts = 3
isAdmin = false
)
This is useful for grouping related variables.
2. Data Types in Go
Go provides a powerful type system optimized for both performance and readability. Here are the types most relevant to backend systems.
2.1 Numeric types
int,int8,int16,int32,int64uintversions for unsigned integersfloat32,float64for decimal numbers
Example:
price := 19.99
quantity := 5
2.2 Strings
Go’s strings are UTF-8 encoded:
message := "Hello, Go!"
2.3 Boolean
isValid := true
2.4 Composite Types (important for backend systems)
Slice
roles := []string{"admin", "user"}
Map
config := map[string]string{
"env": "production",
"region": "ap-southeast-1",
}
Struct — core building block of backend models
type User struct {
Name string
Age int
}
3. Constants in Go
Constants represent values that never change.
const AppName = "Codevivu.com"
const MaxConnections = 10
3.1 Using iota for enumerations
iota is a counter that increments automatically:
const (
StatusPending = iota // 0
StatusApproved // 1
StatusRejected // 2
)
This is useful for defining business logic states.
4. Summary
In Part 3, you learned:
- Different ways to declare variables in Go
- How zero values work
- Core primitive and composite data types
- How to define constants and enumerations using
iota - Practical examples used in real backend systems
