Sobes.tech

Golang

Որ հետևյալ կոդի հատվածներից մեկը պարունակում է սխալ կամ հնարավոր խնդիր, կապված ալիքների հետ աշխատանքի հետ: Ընտրանք 1 package main func main() { ch := make(chan int) ch <- 1 } Ընտրանք 2 package main func main() { ch := make(chan int, 1) ch <- 1 } Ընտրանք 3 package main func main() { ch := make(chan int, 1) ch <- 1 <-ch } Ընտրանք 4 package main func main() { ch := make(chan int) close(ch) <-ch } Ընտրանք 5 package main func main() { ch := make(chan int, 3) ch <- 4 }

Senior
208

Կարող եք պատմել ձեր փորձի մասին բաց կոդով նախագծերով աշխատելու և ձեր ներդրումների օրինակներ տալու մասին?

Senior
197

Կարո՞ղ է ֆունկցիային փոխանցել ցանկացած քանակի արգումենտներ։

Junior
151

Ինչպես տեղադրվեցին? Քայլեր pipeline-ում?

Senior
145

Կա արդյոք դինամիկ տիպավորում Go-ում?

Junior
143

Ի՞նչ է ապահովում Go-ում թելերի անվտանգությունը (thread safety):

Junior
133

Ինչպես հայտարարել WaitGroup- ը: Ինչպե՞ս գրել արժեքը ալիքում։

Senior
131

Ինչպես անցան CI/CD պայլայնի թեստերը: Ինչն էր հետևվում?

Senior
99

Ի՞նչ է վերադարձնում ալիքների տիրույթը: Օգտագործելի է արդյոք հայտարարությունը՝ for _, c := range chs?

Senior
95

func fanin[T ցանկացած](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
87