Sobes.tech

Golang

Który z poniższych fragmentów kodu zawiera błąd lub potencjalny problem związany z pracą z kanałami? Opcja 1 package main func main() { ch := make(chan int) ch <- 1 } Opcja 2 package main func main() { ch := make(chan int, 1) ch <- 1 } Opcja 3 package main func main() { ch := make(chan int, 1) ch <- 1 <-ch } Opcja 4 package main func main() { ch := make(chan int) close(ch) <-ch } Opcja 5 package main func main() { ch := make(chan int, 3) ch <- 4 }

Senior
211

Czy mógłbyś opowiedzieć o swoim doświadczeniu w pracy z projektami open source i podać przykłady swoich wkładów?

Senior
200

Czy można przekazać dowolną liczbę argumentów do funkcji?

Junior
154

Jak zostały wdrożone? Kroki w pipeline?

Senior
148

Czy w Go istnieje dynamiczne typowanie?

Junior
144

Co w Go zapewnia bezpieczeństwo wątków (thread safety)?

Junior
138

Jakie są sposoby deklaracji WaitGroup? Jak zapisać wartość do kanału?

Senior
131

Co zwraca zakres kanałów? Czy zapis: for _, c := range chs jest poprawny?

Senior
122

Jak przebiegały testy w pipeline CI/CD? Co było monitorowane?

Senior
100

func fanin[T any](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