aprendago icon indicating copy to clipboard operation
aprendago copied to clipboard

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

Open vkorbes opened this issue 4 years ago • 3 comments

Exercício: Capítulo 22, Exercício 5 (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

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

package main

import (
	"fmt"
)

func main() {
	canal := make(chan int)

	go func() {
		canal <- 1337
		canal <- 1338
		// aqui nao existe mais valor no canal, logo o valor eh FALSE no proximo print: linha 20 and 21
		close(canal)
	}()
	a, ok := <-canal
	fmt.Println(a, ok)
	b, ok := <-canal
	fmt.Println(b, ok)
	c, ok := <-canal
	fmt.Println(c, ok)
}

Output

1337 true
1338 true
0 false

Program exited.

an4kein avatar Mar 16 '21 21:03 an4kein

Playground

package main

import (
	"fmt"
)

func main() {
	c := make(chan int)
	go func() {
		c <- 100
		c <- 10500

	}()
	v, ok := <-c
	fmt.Println(v, ok)
	v, ok = <-c
	fmt.Println(v, ok)
	close(c)
	v, ok = <-c
	fmt.Println(v, ok)

}

LelecoNN avatar Oct 20 '23 13:10 LelecoNN

package main

import (
	"fmt"
)

func main() {
	c := make(chan int)

	go func() {
		for i := 1; i < 100; i++ {
			c <- i
		}
		close(c)
	}()

	for {
		select {
		case v, ok := <- c:
			if ok {
				fmt.Println(v, ok)
			} else {
				fmt.Println(v, ok)
				return
			}
		}
	}

	// v, ok :=
		


	// v, ok =
}

LeandroCGMS avatar Jun 28 '24 14:06 LeandroCGMS