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.

A visual depiction of what is being written about

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):

Bora codar juntos um gerenciador de metas?

embarcar na missão
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):

    Bora codar juntos um gerenciador de metas?

    embarcar na missão
    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 🚀

    Bora codar juntos um gerenciador de metas?

    embarcar na missão

    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