🧩 Exercícios: Introdução ao Go, Ferramentas CLI e Entrada/Saída com fmt
Spec Sistemas Com Go • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 01.1 — Função main() e Impressão Formatada com fmt.Printf()
Contexto: Função main() e Impressão Formatada com fmt.Printf() no contexto de Introdução ao Go, Ferramentas CLI e Entrada/Saída com fmt.
Requisitos de Execução:
- Escrever programa em Go com pacote
maine formatação de inteiros, strings e booleanos.
Resultado Esperado
Executável Go compilado imprimindo saída formatada.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_01_1_SeuNome - Envie na tarefa:
Atividade Cap 01 - Introdução ao Go, Ferramentas CLI e Entrada/Saída com fmt
🔑 Gabarito de Código & Solução Comentada
package main
import "fmt"
func main() {
versao := "1.22"
fmt.Printf("Go Systems Programming (Go v%s)\n", versao)
fmt.Println("Concorrencia nativa e compilacao estatica iniciadas.")
}
🔍 Nível 2: Prática
Problema 01.2 — Leitura de Entrada com fmt.Scanln() e bufio.NewReader
Contexto: Leitura de Entrada com fmt.Scanln() e bufio.NewReader no contexto de Introdução ao Go, Ferramentas CLI e Entrada/Saída com fmt.
Requisitos de Execução:
- Ler dados do usuário via console capturando linhas completas com
bufio.NewReader(os.Stdin).
Resultado Esperado
Entrada capturada e processada sem cortes de espaços.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_01_2_SeuNome - Envie na tarefa:
Atividade Cap 01 - Introdução ao Go, Ferramentas CLI e Entrada/Saída com fmt
🔑 Gabarito de Código & Solução Comentada
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
leitor := bufio.NewReader(os.Stdin)
fmt.Print("Digite seu identificador: ")
texto, _ := leitor.ReadString('\n')
fmt.Printf("Identificador lido: %s", strings.TrimSpace(texto))
}
⚡ Nível 3: Integração
Problema 01.3 — Build Cross-Platform com Flags GOOS e GOARCH
Contexto: Build Cross-Platform com Flags GOOS e GOARCH no contexto de Introdução ao Go, Ferramentas CLI e Entrada/Saída com fmt.
Requisitos de Execução:
- Compilar executável para Linux ARM64 a partir do Windows usando variáveis de ambiente do Go.
Resultado Esperado
Binário compilado para target Linux ARM64 sem dependências externas.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_01_3_SeuNome - Envie na tarefa:
Atividade Cap 01 - Introdução ao Go, Ferramentas CLI e Entrada/Saída com fmt
🔑 Gabarito de Código & Solução Comentada
# Script de Cross-Compilation
export GOOS=linux
export GOARCH=arm64
export CGO_ENABLED=0
go build -ldflags="-s -w" -o app_linux_arm64 main.go
echo "Binario Linux ARM64 gerado com sucesso."
🏆 Nível 4: Desafio Corporativo
Problema 01.4 — Flags de Injeção de Versão em Tempo de Build (-ldflags -X)
Contexto: Flags de Injeção de Versão em Tempo de Build (-ldflags -X) no contexto de Introdução ao Go, Ferramentas CLI e Entrada/Saída com fmt.
Requisitos de Execução:
- Injetar commit SHA e data de compilação diretamente em variáveis globais no comando
go build.
Resultado Esperado
Versão e commit SHA embutidos no binário final sem alterar código fonte.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_01_4_SeuNome - Envie na tarefa:
Atividade Cap 01 - Introdução ao Go, Ferramentas CLI e Entrada/Saída com fmt
🔑 Gabarito de Código & Solução Comentada
package main
import "fmt"
var (
Version = "dev"
GitCommit = "none"
)
func main() {
fmt.Printf("App Versao: %s | Commit: %s\n", Version, GitCommit)
}
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |