🧩 Exercícios: Variáveis, Tipagem Estática, Declaração Curta e Constantes
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 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:
- 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)
- Salve o arquivo como:
Atividade_02_1_SeuNome - 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:
- Declarar enum de níveis de log corporativos utilizando
iotae deslocamento de bits.
Resultado Esperado
Constantes calculadas pelo compilador com o gerador sequencial iota.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_02_2_SeuNome - 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:
- 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)
- Salve o arquivo como:
Atividade_02_3_SeuNome - 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:
- Criar novo tipo
type Segundos inte 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)
- Salve o arquivo como:
Atividade_02_4_SeuNome - 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 |