Carregando
0x50Lição 6 de 9

Modele dados e execute tarefas concorrentes

Agrupe campos em uma struct e coordene uma goroutine com um canal.

14 min Questionário com 4 perguntas 1 exercício de código
Ao final desta lição, você saberá
  • Reconhecer structs, métodos, goroutines e canais em Go.

Uma struct agrupa campos relacionados em um tipo nomeado. Métodos associam comportamentos a um tipo por meio de um receptor. Uma instrução go inicia uma goroutine, uma tarefa concorrente leve. Canais permitem que goroutines troquem valores e coordenem seu trabalho.

main.go
1package main
2
3import "fmt"
4
5func sendMessage(ch chan string) {
6    ch <- "ready"
7}
8
9func main() {
10    messages := make(chan string)
11    go sendMessage(messages)
12    fmt.Println(<-messages)
13}
Saída
ready

O envio por um canal sem buffer espera até que outra goroutine receba o valor. Isso cria um ponto claro de sincronização entre as tarefas. Comece com exemplos pequenos e mantenha simples o controle dos dados compartilhados.

Principais conclusões

  • Reconhecer structs, métodos, goroutines e canais em Go.

  • Go detecta muitos erros durante a compilação.

  • Faça pequenos experimentos para entender cada novo recurso da linguagem.

Quiz da aula

4 perguntas · aprovação com 3 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Pratique: escreva código em Go

Escreva Go no editor e execute com entradas de exemplo em um compilador remoto. Seu código é enviado ao Compiler Explorer para ser compilado e executado.

Exercício 1

Envie uma mensagem por um canal

+25 XP

Crie um canal de strings, inicie uma goroutine que envia Go is ready, receba a mensagem e exiba-a.

  • Mensagem do canal
main.go
Carregando editor…

O Go é compilado e executado pelo Compiler Explorer (godbolt.org), um serviço público gratuito. Seu código-fonte e a entrada de teste são enviados a esse serviço.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…