Modele dados e execute tarefas concorrentes
Agrupe campos em uma struct e coordene uma goroutine com um canal.
- 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.
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}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.
Envie uma mensagem por um canal
Crie um canal de strings, inicie uma goroutine que envia Go is ready, receba a mensagem e exiba-a.
- Mensagem do canal
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…