Sobes.tech

Golang

Qual dos seguintes trechos de código contém um erro ou potencial problema relacionado com o trabalho com canais? Opção 1 package main func main() { ch := make(chan int) ch <- 1 } Opção 2 package main func main() { ch := make(chan int, 1) ch <- 1 } Opção 3 package main func main() { ch := make(chan int, 1) ch <- 1 <-ch } Opção 4 package main func main() { ch := make(chan int) close(ch) <-ch } Opção 5 package main func main() { ch := make(chan int, 3) ch <- 4 }

Senior
213

Poderia falar sobre a sua experiência com projetos de código aberto e dar exemplos das suas contribuições?

Senior
204

É possível passar uma quantidade arbitrária de argumentos para uma função?

Junior
156

Como foram feitos os deploys? Etapas no pipeline?

Senior
149

Existe tipagem dinâmica em Go?

Junior
146

O que em Go garante a segurança de threads (thread safety)?

Junior
140

Quais são as formas de declarar um WaitGroup? Como escrever um valor em um canal?

Senior
133

O que retorna o intervalo de canais? A declaração: for _, c := range chs é válida?

Senior
122

Como decorreram os testes na pipeline de CI/CD? O que era monitorizado?

Senior
101

func fanin[T qualquer](chs ...<-chan T) chan T { out := make(chan T) wg := sync.WaitGroup{} for _, ch := range chs { wg.Add(1) go func(c <-chan T) { defer wg.Done() for v := range c { out <- v } }(ch) } go func() { wg.Wait() close(out) }() return out } func main() { ch1 := make(chan int, 5) ch2 := make(chan int, 5) for i := 1; i <= 5; i++ { ch1 <- i ch2 <- i * 2 } close(ch1) close(ch2) fmt.Println(fanin(ch1, ch2)) }

Senior
90