I have been thinking about learning a new language for a while. But which one 🤷

There is a lot of hype around Rust of late, and I have considered it for a while, but there is just something about Go that keeps pulling me back to it. That brings us here, where I will be learning Go, also known as Golang, and sharing my journey here.

Hold on tight, Go is fast, really fast!

Installing Go

Seems to be a few ways to go about this. My preference, like I have been doing with Python and Node, is using asdf. You would need to install the asdf-go plugin as well. Once you have that out the way we can install golang v1.21.1.

asdf install golang 1.21.1

Once installed you can set it to the local or global shim using asdf to add the new installed version to your path

asdf global golang 1.21.1

Now we can confirm if we have the installed version available.

go version                                                                   │
go version go1.21.1 darwin/arm64                                                                                 │

Starting a new Go project

I am creating the learn_go repository, which is also on my Github page.

mkdir learn_go && cd learn_go && git init && touch README.md

Next let’s start with a classic, the old "Hello, world!"

mkdir example && cd example

go mod init example/hello
go: creating new go.mod: module example/hello

go mod tidy

touch hello.go

Hello world code

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

Running code

go run hello.go

Hello, World!