Spec Sistemas Com Go • Trilha Progressiva em 4 Níveis


🧭 Navegação Pedagógica


🎯 Nível 1: Fundamentos

Problema 02.1 — Declaração Curta com Operador := e Zero Values

Contexto: Declaração Curta com Operador := e Zero Values no contexto de Variáveis, Tipagem Estática, Declaração Curta e Constantes.

Requisitos de Execução:

  1. Demonstrar inferência de tipos e valores zero automáticos (0, '', false).

Resultado Esperado

Variáveis inicializadas com seus respectivos zero values.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_02_1_SeuNome
  2. Envie na tarefa: Atividade Cap 02 - Variáveis, Tipagem Estática, Declaração Curta e Constantes
🔑 Gabarito de Código & Solução Comentada
package main

import "fmt"

func main() {
    var numero int
    var texto string
    var ativo bool
    declaracaoCurta := 42

    fmt.Printf("int=%d, str='%s', bool=%t, curta=%d\n", numero, texto, ativo, declaracaoCurta)
}

🔍 Nível 2: Prática

Problema 02.2 — Constantes Enumeradas com o Gerador iota

Contexto: Constantes Enumeradas com o Gerador iota no contexto de Variáveis, Tipagem Estática, Declaração Curta e Constantes.

Requisitos de Execução:

  1. Declarar enum de níveis de log corporativos utilizando iota e deslocamento de bits.

Resultado Esperado

Constantes calculadas pelo compilador com o gerador sequencial iota.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_02_2_SeuNome
  2. Envie na tarefa: Atividade Cap 02 - Variáveis, Tipagem Estática, Declaração Curta e Constantes
🔑 Gabarito de Código & Solução Comentada
package main

import "fmt"

const (
    LogInfo = 1 << iota // 1
    LogAviso            // 2
    LogErro             // 4
    LogCritico          // 8
)

func main() {
    fmt.Printf("Info: %d | Aviso: %d | Erro: %d | Critico: %d\n", LogInfo, LogAviso, LogErro, LogCritico)
}

⚡ Nível 3: Integração

Problema 02.3 — Conversão de Tipos Primitivos (Type Casting Explícito)

Contexto: Conversão de Tipos Primitivos (Type Casting Explícito) no contexto de Variáveis, Tipagem Estática, Declaração Curta e Constantes.

Requisitos de Execução:

  1. Converter inteiros para floats com float64(x) e calcular divisões exatas.

Resultado Esperado

Cálculo executado com conversão explícita sem truncamentos acidentais.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_02_3_SeuNome
  2. Envie na tarefa: Atividade Cap 02 - Variáveis, Tipagem Estática, Declaração Curta e Constantes
🔑 Gabarito de Código & Solução Comentada
package main

import "fmt"

func main() {
    soma := 15
    total := 4
    media := float64(soma) / float64(total)
    fmt.Printf("Media calculada: %.2f\n", media)
}

🏆 Nível 4: Desafio Corporativo

Problema 02.4 — Tipagem Forte Customizada (Type Aliasing vs Defined Types)

Contexto: Tipagem Forte Customizada (Type Aliasing vs Defined Types) no contexto de Variáveis, Tipagem Estática, Declaração Curta e Constantes.

Requisitos de Execução:

  1. Criar novo tipo type Segundos int e implementar validação de unidades sem mistura acidental de tipos.

Resultado Esperado

Segurança de tipos garantida: Proibida atribuição implícita entre Segundos e int puro.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_02_4_SeuNome
  2. Envie na tarefa: Atividade Cap 02 - Variáveis, Tipagem Estática, Declaração Curta e Constantes
🔑 Gabarito de Código & Solução Comentada
package main

import "fmt"

type PortaRede uint16

func validarPorta(p PortaRede) bool {
    return p > 1024
}

func main() {
    var porta PortaRede = 8080
    fmt.Printf("Porta %d valida: %t\n", porta, validarPorta(porta))
}

⬅️ Voltar ao Índice de Exercícios 📚 Sumário de Tópicos