Junior — Middle
Катачылыктарды алдын алуу үчүн Go'до каналды канча жолу жабуу керек?
sobes.tech AI
AIден жооп
Go тилде, каналды такыр бир жолу жабуу керек, эгер ага дагы маалымат жөнөтүлбөсө. Каналды бир нече жолу жабуу runtime panic-ке алып келет.
Маанилүү:
- Каналга жазган адам аны жабыш керек, окуган эмес.
- Эгер канал горутиндер арасында маалымат өткөрүү үчүн колдонулса, жабуу, андан ары маалымат болбой турганын билдирет.
Мисал:
ch := make(chan int)
func() {
defer close(ch) // каналды бир жолу жабуу
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val)
}
Бул мисалда, канал бардык маанилер жөнөтүлгөндөн кийин бир жолу жабылат.