Sobes.tech

Golang

Lequel des fragments de code suivants contient une erreur ou un problème potentiel lié au travail avec des canaux? Option 1 package main func main() { ch := make(chan int) ch <- 1 } Option 2 package main func main() { ch := make(chan int, 1) ch <- 1 } Option 3 package main func main() { ch := make(chan int, 1) ch <- 1 <-ch } Option 4 package main func main() { ch := make(chan int) close(ch) <-ch } Option 5 package main func main() { ch := make(chan int, 3) ch <- 4 }

Senior
202

Pourriez-vous parler de votre expérience avec des projets open source et donner des exemples de vos contributions?

Senior
193

Peut-on passer un nombre arbitraire d'arguments à une fonction?

Junior
146

Comment ont-ils été déployés ? Étapes dans le pipeline ?

Senior
144

Y a-t-il une typification dynamique dans Go?

Junior
141

Qu'est-ce qui garantit la sécurité des threads (thread safety) en Go?

Junior
133

Quelles sont les façons de déclarer un WaitGroup ? Comment écrire une valeur dans un canal ?

Senior
130

Comment se déroulaient les tests dans le pipeline CI/CD ? Qu'était-il suivi ?

Senior
99

Que retourne la plage de canaux ? La déclaration : for _, c := range chs est-elle valide ?

Senior
94

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
84