aprendago icon indicating copy to clipboard operation
aprendago copied to clipboard

Exercício: Capítulo 22, Exercício 3 (Nível: 10)

Open vkorbes opened this issue 4 years ago • 4 comments

Exercício: Capítulo 22, Exercício 3 (Nível: 10)

Link para o vídeo:

Use esta thread para compartilhar sua solução, discutir o exercício com os colegas e pedir ajuda caso tenha dificuldades!

vkorbes avatar Sep 30 '20 18:09 vkorbes

Desculpa mas passei a faca no receive :100: https://play.golang.org/p/BrNmZKoKHvC

haystem avatar Dec 22 '20 21:12 haystem

https://play.golang.org/p/V1ujzDWFyjb

#fritei

package main

import (
	"fmt"
	"sync"
)

var wg sync.WaitGroup

func main() {
	c := gen()
	go receive(c)
	wg.Wait()
	fmt.Println("about to exit")
}

func gen() <-chan int {
	c := make(chan int)
	wg.Add(1)
	go func() {
		for i := 0; i < 100; i++ {
			c <- i
		}
		wg.Done()
	}()

	return c
}

func receive(z <-chan int) {
	for i := range z {
		fmt.Println(i)

	}
	return
}

Output

[...]
94
95
96
97
98
99
about to exit

Program exited.

an4kein avatar Mar 15 '21 19:03 an4kein

Antes de ver a solução: https://go.dev/play/p/rw7x1bfYrPl depois: https://go.dev/play/p/_OP7R9Sumdy

Harsgaard avatar Apr 12 '23 02:04 Harsgaard

Playground

package main

import (
	"fmt"
)

func main() {
	c :=make(chan int)
	go gen(c)
	 receive(c)
	fmt.Println("about to exit")

}

func gen(c chan int) <-chan int { 
	for i := 0; i < 100; i++ {
		c <- i
	}
	close(c)
	return c
}
func receive(c <-chan int) {
	for v := range c {
		fmt.Println(v)
	}
}

LelecoNN avatar Oct 18 '23 14:10 LelecoNN