Skip to main content

Foundational Lessons

LESSON 1: Go Fundamentals, Interfaces, and CLI Tooling Explained

In this chapter, you will learn Go's fundamental building blocks including variables, functions, and control structures, then advance to interfaces and type assertions, and discover how to turn your Go programs into system-wide Linux CLI tools.

In this first lesson of our Golang series, we will cover the fundamental building blocks you need to start writing Go programs, and then we go further into more advanced concepts like interfaces and type assertions that you will use throughout this series.

Prerequisites

Before diving into code, you'll need Go installed on your system, so visit golang.org/doc/install for installation instructions for your operating system.

For Linux users, you can install Go using your package manager:

# Debian/Ubuntu
sudo apt install golang -y

# Fedora
sudo dnf install golang -y

This will install the version available in your distribution repository, which may not be the latest version, but is fine for this series.

If you are on Windows or macOS, you can go to the official website and download the Go installer appropriate for your system.

All code examples in this lesson can be saved as .go files and run using:

go run filename.go

Part 1: Go Fundamentals

Before we build real-world projects, you need to understand Go's core concepts, which are designed to be simple, and once you grasp these basics, you will feel confident building anything.

Variables and Data Types

In Go, you declare variables using the var keyword or the shorthand := operator. Go is statically typed, meaning every variable has a specific type determined at compile time.

Here is how you declare variables:

package main

import "fmt"

func main() {
    // Using var keyword
    var name string = "Alice"
    var age int = 30

    // Using shorthand (Go infers the type)
    city := "New York"
    isActive := true

    fmt.Println(name, age, city, isActive)
}

Go has several basic data types:

  • string - Text values like "Hello"
  • int - Whole numbers like 42
  • float64 - Decimal numbers like 3.14
  • bool - true or false values

The shorthand := is convenient and commonly used inside functions. It automatically infers the type based on the value you assign.

However, := can only be used when declaring a new variable. If you want to assign a new value to an existing variable, use = instead.

Example:

age := 30  // declaration
age = 31   // reassignment

Functions

Functions are reusable blocks of code that perform specific tasks. In Go, you define functions using the func keyword.

Here is a simple function:

Pro TecMint Β· Root Plan
This Article is for Root Members
Join Root to read the full article and unlock everything

Full Access to Every Article, Course & Certification Track

Join thousands of Linux professionals who use Pro TecMint to advance their careers.

Ad-free access to all premium articles
All courses: Learn Linux, Bash, Golang, Ubuntu and more
RHCSA, RHCE, LFCS & LFCA certification prep
New courses added every month
Private Telegram community & priority support
Root Plan
$8/mo
or $59/year billed annually
Save $37 with annual plan
Start Reading This Article in the Next 60 Seconds
Join Root Plan β†’