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


🧭 Navegação Pedagógica


🎯 Nível 1: Fundamentos

Problema 07.1 — Diferenciação entre Bytes e Runas (Unicode code points)

Contexto: Diferenciação entre Bytes e Runas (Unicode code points) no contexto de Strings e Runas (Unicode/UTF-8) e Pacote strings.

Requisitos de Execução:

  1. Iterar sobre string contendo caracteres acentuados utilizando for _, runa := range str.

Resultado Esperado

Caracteres UTF-8 decodificados corretamente como runas int32.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_07_1_SeuNome
  2. Envie na tarefa: Atividade Cap 07 - Strings e Runas (Unicode/UTF-8) e Pacote strings
🔑 Gabarito de Código & Solução Comentada
package main

import "fmt"

func main() {
    texto := "Go é incrível! 🚀"
    fmt.Printf("Bytes: %d | Runas: %d\n", len(texto), len([]rune(texto)))
    for _, r := range texto {
        fmt.Printf("%c ", r)
    }
    fmt.Println()
}

🔍 Nível 2: Prática

Problema 07.2 — Manipulações com o Pacote strings (Split, Join, Contains, ReplaceAll)

Contexto: Manipulações com o Pacote strings (Split, Join, Contains, ReplaceAll) no contexto de Strings e Runas (Unicode/UTF-8) e Pacote strings.

Requisitos de Execução:

  1. Dividir texto CSV, substituir espaços e juntar com novo delimitador.

Resultado Esperado

Texto processado com funções utilitárias do pacote strings.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_07_2_SeuNome
  2. Envie na tarefa: Atividade Cap 07 - Strings e Runas (Unicode/UTF-8) e Pacote strings
🔑 Gabarito de Código & Solução Comentada
package main

import (
    "fmt"
    "strings"
)

func main() {
    raw := "item1, item2, item3"
    partes := strings.Split(raw, ",")
    for i := range partes {
        partes[i] = strings.TrimSpace(partes[i])
    }
    formatado := strings.Join(partes, " | ")
    fmt.Println("Formatado:", formatado)
}

⚡ Nível 3: Integração

Problema 07.3 — Construção de Strings de Alta Performance com strings.Builder

Contexto: Construção de Strings de Alta Performance com strings.Builder no contexto de Strings e Runas (Unicode/UTF-8) e Pacote strings.

Requisitos de Execução:

  1. Concatenar milhares de fragmentos de texto utilizando strings.Builder com zero realocações de string.

Resultado Esperado

Buffer de texto montado com eficiência de memória.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_07_3_SeuNome
  2. Envie na tarefa: Atividade Cap 07 - Strings e Runas (Unicode/UTF-8) e Pacote strings
🔑 Gabarito de Código & Solução Comentada
package main

import (
    "fmt"
    "strings"
)

func main() {
    var sb strings.Builder
    for i := 1; i <= 5; i++ {
        fmt.Fprintf(&sb, "Linha #%d; ", i)
    }
    fmt.Println(sb.String())
}

🏆 Nível 4: Desafio Corporativo

Problema 07.4 — Sanitização e Conversão Segura de Strings UTF-8 com unicode/utf8

Contexto: Sanitização e Conversão Segura de Strings UTF-8 com unicode/utf8 no contexto de Strings e Runas (Unicode/UTF-8) e Pacote strings.

Requisitos de Execução:

  1. Validar se uma sequência de bytes é UTF-8 válido utilizando utf8.Valid(bytes).

Resultado Esperado

Validação estrita de codificação UTF-8 concluída.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_07_4_SeuNome
  2. Envie na tarefa: Atividade Cap 07 - Strings e Runas (Unicode/UTF-8) e Pacote strings
🔑 Gabarito de Código & Solução Comentada
package main

import (
    "fmt"
    "unicode/utf8"
)

func main() {
    valido := []byte("Texto Valido UTF-8")
    fmt.Printf("Eh UTF-8 valido: %t\n", utf8.Valid(valido))
}

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