Go (GoLang): Primeiros Passos
golang

Primeiros Passos com Go

Golang, ou simplesmente Go, é uma linguagem de programação de código aberto desenvolvida pela Google. Conhecida por sua simplicidade, eficiência e suporte robusto para programação concorrente, Go se tornou uma escolha popular para o desenvolvimento de sistemas, servidores e aplicações em nuvem. Neste artigo, exploraremos os primeiros passos para aprender e programar em Go.
📖
Antes de prosseguir a leitura que tal saber mais sobre a origem, motivação e casos de uso dessa tecnologia: Go (GoLang): A linguagem criada pelo Google.

Características do Golang

Simplicidade: Sintaxe simples e fácil de aprender.
Concorrência: Suporte integrado para programação concorrente com goroutines.
Desempenho: Compilação rápida e execução eficiente.
Biblioteca padrão: Ampla biblioteca padrão que cobre uma variedade de funcionalidades.
Ferramentas de desenvolvimento: Ferramentas integradas para teste, formatação de código, entre outras.

Como Iniciar em Golang

Passo 1: Instalar o Golang

Baixar: Visite o site oficial do Go golang.org e baixe a versão mais recente.
Instalar: Siga as instruções de instalação para o seu sistema operacional (Windows, macOS, Linux).
Configurar: Adicione o caminho do Go (GOPATH) às variáveis de ambiente do seu sistema.

Passo 2: Configurar o Ambiente de Desenvolvimento

Editor de Texto/IDE: Escolha um editor de texto ou IDE. Alguns populares são:
Visual Studio Code (VS Code) com a extensão Go.
notion image
GoLand (da JetBrains).
Sublime Text com o plugin GoSublime.

Passo 3: Escrever Seu Primeiro Programa

Criar um diretório de trabalho: Crie um diretório para o seu projeto Go, por exemplo, hello-go.
Escrever um programa simples:
Crie um arquivo chamado main.go e adicione o seguinte código:
package main import "fmt" func main() { fmt.Println("Hello, World!") }
 
Compilar e Executar: No terminal, navegue até o diretório do seu projeto e execute:
go run main.go

Passo 4: Aprender os Conceitos Básicos

Variáveis e Tipos de Dados

Declaração de Variáveis:
Forma curta de declaração (dentro de funções):
nome := "Alice" idade := 30
Forma longa de declaração:
var nome string = "Alice" var idade int = 30
Tipos de Dados Básicos:
  • Números inteiros: int, int8, int16, int32, int64, uint8, uint16, uint32, uint64.
  • Números de ponto flutuante: float32, float64.
  • Booleanos: bool (true ou false).
  • Strings: string.

2. Funções

Definição de Função:
func saudacao(nome string) string { return "Olá, " + nome }
Chamada de Função:
func main() { mensagem := saudacao("Alice") fmt.Println(mensagem) }
Funções com múltiplos retornos:
func dividir(a, b float64) (float64, error) { if b == 0 { return 0, fmt.Errorf("divisão por zero") } return a / b, nil }
Funções Anônimas:
anonima := func(x int) int { return x * x } resultado := anonima(5) fmt.Println(resultado) // Output: 25

3. Estruturas de Controle

Condicionais (if, else, else if):
if idade >= 18 { fmt.Println("Maior de idade") } else { fmt.Println("Menor de idade") }
Switch:
dia := "segunda" switch dia { case "segunda": fmt.Println("Início da semana") case "sexta": fmt.Println("Fim da semana") default: fmt.Println("Meio da semana") }
Laços (for):
Básico:
for i := 0; i < 10; i++ { fmt.Println(i) }
Como um while:
i := 0 for i < 10 { fmt.Println(i) i++ }
Iteração sobre slices ou arrays:
nums := []int{2, 4, 6, 8} for index, value := range nums { fmt.Println(index, value) }

4. Estruturas de Dados

Arrays e Slices:
Array (tamanho fixo):
var numeros [5]int = [5]int{1, 2, 3, 4, 5}
Slice (tamanho dinâmico):
numeros := []int{1, 2, 3, 4, 5}
Adicionar elementos a um slice:
numeros = append(numeros, 6)
Maps (dicionários):
idades := map[string]int{ "Alice": 30, "Bob": 25, } fmt.Println(idades["Alice"]) // Output: 30 // Adicionar um novo par chave-valor idades["Charlie"] = 28
Structs:
type Pessoa struct { Nome string Idade int } func main() { p := Pessoa{ Nome: "Alice", Idade: 30, } fmt.Println(p.Nome) // Output: Alice }
📖
Saiba mais sobre Structs e JSON: Golang: Guia sobre Structs e JSON.

5. Concorrência

Goroutines:
Uma goroutine é uma função executada em paralelo com outras goroutines:
func digaOla() { fmt.Println("Olá!") } func main() { go digaOla() fmt.Println("Mundo") // Pausar para permitir que a goroutine termine antes do programa time.Sleep(1 * time.Second) }
Canais (channels):
Comunicação segura entre goroutines:
func digaOla(canal chan string) { canal <- "Olá do canal!" } func main() { canal := make(chan string) go digaOla(canal) mensagem := <-canal fmt.Println(mensagem) // Output: Olá do canal! }

Recursos para Aprender Go

1. Documentação Oficial: golang.org/doc
2. Tutoriais e Cursos Online:
A Tour of Go: Um tutorial interativo oficial.
Go by Example: Exemplos práticos de código Go.
3. Livros:
The Go Programming Language por Alan Donovan e Brian Kernighan.
Go in Action por William Kennedy.

Praticar

  1. Projetos Pessoais: Comece pequenos projetos para aplicar o que aprendeu.
  1. Participe de Eventos Online e intereja com a Comunidade.
  1. Contribua para Projetos Open Source: Participe de projetos open source no GitHub.
Acredito que se você seguir esses passos, você poderá iniciar seu caminho na programação com Golang e aproveitar os benefícios dessa linguagem poderosa e eficiente.
Bora Codar 🚀

Aprenda programação do zero e DE GRAÇA

No Discover você vai descomplicar a programação, aprender a criar seu primeiro site com a mão na massa e iniciar sua transição de carreira.

COMECE A ESTUDAR AGORA