Biblioteca Padrão Go (Golang): Visão Geral Completa

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Biblioteca Padrão Go (Golang): Visão Geral Completa



Go (ou Golang) é uma linguagem de programação compilada moderna do Google, criada para simplicidade, desempenho e confiabilidade. Uma das principais razões para sua popularidade é sua poderosa e bem documentada biblioteca padrão. Ao contrário de muitas outras linguagens, o Go vem com um rico conjunto de pacotes "prontos para uso" que cobrem praticamente todas as tarefas básicas: desde trabalhar com texto até construir serviços web de alta carga. Nesta visão geral, examinaremos detalhadamente os principais pacotes da biblioteca padrão Go com exemplos de código.



Pacote fmt: Entrada/Saída Formatada

Este é o primeiro pacote que todo desenvolvedor Go conhece. Ele fornece funções para saída formatada no console e leitura de dados.

package main

import "fmt"

func main() { name := "Go" version := 1.22 // Saída formatada fmt.Printf("Linguagem: %s, Versão: %.1f", name, version)

// Montar string sem saída message := fmt.Sprintf("Olá, %s!", name) fmt.Println(message)}


Pacotes strings e strconv: Trabalhando com Strings

O pacote strings contém funções para pesquisar, substituir, dividir e unir strings. strconv é responsável por converter strings em números e vice-versa.

import (    "fmt"    "strconv"    "strings")

func main() { s := "Olá, mundo!" // Pesquisar substring if strings.Contains(s, "mundo") { fmt.Println("Encontrado") } // Dividir string parts := strings.Split(s, ", ") fmt.Println(parts[0]) // Olá

// Converter string para número num, _ := strconv.Atoi("42") fmt.Println(num + 8) // 50}


Pacote net/http: Criando Servidores e Clientes HTTP

Um dos pacotes mais poderosos. Permite iniciar um servidor HTTP completo com poucas linhas de código. Amplamente utilizado em microsserviços e aplicações web.

package main

import ( "fmt" "net/http")

func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Olá, %s!", r.URL.Path[1:])}

func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil)}


Pacote encoding/json: Trabalhando com JSON

Aplicações modernas trocam dados constantemente no formato JSON. O pacote encoding/json permite serializar e desserializar facilmente estruturas Go para JSON e vice-versa.

import (    "encoding/json"    "fmt")

type User struct { Name string `json:"name"` Age int `json:"age"`}

func main() { user := User{Name: "Alexei", Age: 30} // Serialização para JSON jsonData, _ := json.Marshal(user) fmt.Println(string(jsonData)) // {"name":"Alexei","age":30}

// Desserialização de JSON var decoded User json.Unmarshal(jsonData, &decoded) fmt.Println(decoded.Name) // Alexei}


Pacotes io e os: Trabalhando com Arquivos e Fluxos

O pacote os fornece funções para trabalhar com o sistema operacional: ler e escrever arquivos, trabalhar com variáveis de ambiente e argumentos de linha de comando. io contém interfaces para trabalhar com fluxos de dados (leitura/escrita).

import (    "io/ioutil"    "os")

func main() { // Escrever em arquivo data := []byte("Olá, Go!") ioutil.WriteFile("exemplo.txt", data, 0644)

// Ler de arquivo content, _ := ioutil.ReadFile("exemplo.txt") os.Stdout.Write(content)}


Pacote sync e goroutines: Concorrência

Go é famoso por seu suporte embutido à concorrência através de goroutines (threads leves) e canais. O pacote sync fornece primitivas de sincronização, como mutex

Recommendations