Desbravando o Go: Setup e Hello World (parte 1)
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 ;)