Desbravando o Go: Setup e Hello World (parte 1)

Rafael Tardivo
rafaeltardivo
Published in
3 min readJan 15, 2019

Escreva seu primeiro programa em Go!

Ser constantemente desafiado profissionalmente é um privilégio! Meu mais novo desafio é aprender Go e por isso decidi compartilhar aqui as etapas do meu processo de aprendizado!

First of all…

Se quiser saber mais sobre o projeto da linguagem, recomendo este link, nosso propósito é colocar a mão na massa!

Instalação (Linux, MacOS e FreeBSD)

1 — Faça o download do tarball aqui

2 — Como superuser, descompacte o tarball no seu diretório /usr/local/:

sudo tar -C /usr/local -xzf go1.11.4.linux-amd64.tar.gz

3 — Adicione o seguinte trecho ao seu arquivo ~/.profile:

export PATH=$PATH:/usr/local/go/bin

Isso fará com que o diretório em que o Go foi instalado seja adicionado a sua variável de ambiente $PATH.

4 — Recarregue seu arquivo ~/.profile:

source ~/.profile

Criando seu workspace

Sem entrar no mérito da necessidade de múltiplos workspaces, criaremos um workspace padrão para a nossa instalação. Para isso, será necessário definir um valor para a variável de ambiente $GOPATH.

1 — No diretótio home (~), crie o diretório go:

cd ~
mkdir go

2 — No fim do arquivo ~/.bashrc, adicione:

export GOPATH=$HOME/go

3 — Recarregue o arquivo ~/.bashrc:

source .bashrc

Mas o que são workspaces?

Um workspace nada mais é do que um diretório que abriga os outros dois diretórios: src e bin. Como você já deve ter inferido, o src irá conter os fontes e o bin os executáveis. Se quiser saber mais sobre eles, clique aqui.

Hello, World!

Seguindo a tradição de Brian Kernighan e Dennis Ritchie, faremos“ um “Hello, World!” em Go!

1 — No seu workspace (~/go), crie o diretório src/hello:

cd ~/go
mkdir -p src/hello

A estrutura resultante deverá ser algo como:

go
├── bin
└── src
└── hello

2 — No diretório ~/go/src/hello/, crie o arquivo hello.go:

touch hello.go

Agora, dentro do diretório hello, você terá o arquivo hello.go:

go
├── bin
└── src
└── hello
└── hello.go

3 — Usando seu editor preferido, insira o seguinte trecho do código no arquivo hello.go:

package mainimport "fmt"func main() {
fmt.Printf("Hello, World!\n")
}

4 — Ainda no diretório ~/go/src/hello/, execute:

go install

5 — Observe que o binário hello será gerado no diretório ~/go/bin:

go
├── bin
│ └── hello
└── src
└── hello
└── hello.go

6 — Va até o diretório ~/go/bin e execute:

./hello

Se tudo der certo, a saída será algo como:

Hello, World!

BOOM! Você fez seu primeiro programa em Go!

Entendendo o que foi feito

Vamos agora entender linha por linha do nosso código

1 — Pacote:

package main

Um pacote é basicamente uma unidade composta por arquivos fonte que juntos servem a um propósito comum. Um bom exemplo seria o package math, que agrupa um conjunto funções matemáticas. No nosso caso, usamos o package main, é usado quando estamos desenvolvendo o “ponto de entrada” de uma aplicação. Em todos os outros casos, os package se tornam pacotes reusáveis, em outras palavras, bibliotecas!

2 — Importação

import "fmt"

O comando import serve para importar bibliotecas. No nosso caso fmt é usada para entrada e saída de dados formatados, algo similar aos já conhecidos printf e scanf do C.

3 — Função main e Printf

func main() {
fmt.Printf("Hello, World!\n")
}

Funções em Go são precedidas pela keyword func. No nosso caso, main() é o ponto de entrada de um executável Go. Dentro delas, utilizamos o Printf da biblioteca fmt (anteriormente importada).

Por hora é só isso! No próximo post veremos mais sobre ambiente, escopo, funções e tipos!

OBS: Logo após concluir este post, encontrei um bem similar em inglês. Ele se encontra aqui.

Cya ;)

--

--