12345678910111213141516171819202122232425262728293031323334 |
- package main
- import (
- "fmt"
- "time"
- )
- func escrever(texto string, canal chan string) {
- time.Sleep(time.Second * 2)
- for i := 0; i < 5; i++ {
- canal <- texto //Envia valor para canal
- time.Sleep(time.Second)
- }
- close(canal) // Informa o programa para encerrar o canal.
- }
- func main() {
- canal := make(chan string)
- go escrever("Olá Mundo!", canal)
- fmt.Println("Após a função escrever. ")
- for {
- mensagem, aberto := <-canal // Recebo valor do canal.
- if !aberto { // Encerra o loop caso o canal esteja fechado.
- break
- }
- println(mensagem)
- }
- for mensagem := range canal { // Forma mais simples de executar o canal.
- fmt.Println(mensagem)
- }
- }
|