Sobes.tech

Golang

Quale dei seguenti frammenti di codice contiene un errore o un potenziale problema legato al lavoro con i canali? Opzione 1 package main func main() { ch := make(chan int) ch <- 1 } Opzione 2 package main func main() { ch := make(chan int, 1) ch <- 1 } Opzione 3 package main func main() { ch := make(chan int, 1) ch <- 1 <-ch } Opzione 4 package main func main() { ch := make(chan int) close(ch) <-ch } Opzione 5 package main func main() { ch := make(chan int, 3) ch <- 4 }

Senior
211

Potresti parlare della tua esperienza con progetti open source e fornire esempi dei tuoi contributi?

Senior
200

È possibile passare un numero arbitrario di argomenti a una funzione?

Junior
154

Come sono stati distribuiti? Passaggi nel pipeline?

Senior
147

Esiste tipizzazione dinamica in Go?

Junior
144

Cosa in Go garantisce la sicurezza dei thread (thread safety)?

Junior
137

Quali sono i modi per dichiarare un WaitGroup? Come scrivere un valore in un canale?

Senior
131

Cosa restituisce l'intervallo di canali? La dichiarazione: for _, c := range chs è valida?

Senior
122

Come sono stati eseguiti i test nella pipeline CI/CD? Cosa veniva monitorato?

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