Aşağıdaki kod parçacıklarından hangisi kanalarla çalışma ile ilgili hata veya potansiyel sorun içeriyor? Seçenek 1 package main func main() { ch := make(chan int) ch <- 1 } Seçenek 2 package main func main() { ch := make(chan int, 1) ch <- 1 } Seçenek 3 package main func main() { ch := make(chan int, 1) ch <- 1 <-ch } Seçenek 4 package main func main() { ch := make(chan int) close(ch) <-ch } Seçenek 5 package main func main() { ch := make(chan int, 3) ch <- 4 }
Golang
Açık kaynak projeleriyle ilgili deneyiminizden bahsedebilir misiniz ve katkılarınızdan örnekler verebilir misiniz?
Bir fonksiyona rastgele sayıda argüman geçirilebilir mi?
Nasıl dağıtıldı? Pipeline'daki adımlar?
Go'da dinamik tipleme var mı?
Go'da hangi özellikler iş parçacığı güvenliğini sağlar?
WaitGroup nasıl tanımlanır? Kanala nasıl değer yazılır?
CI/CD boru hattında testler nasıl yapıldı? Ne takip ediliyordu?
Kanal aralığı ne döner? for _, c := range chs ifadesi geçerli mi?
func fanin[T herhangi](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)) }