Sobes.tech
Middle+

Qaysi shartlarda kanalni o'qish doim bloklanadi? Nil-kanalga yozish nima bo'ladi? Yopiq kanalga yozish nima bo'ladi?

sobes.tech AI

AIdan javob

  • Каналдан ўқиш канал бўш бўлса ва унда ёзиш ният қилинмаса, у доимий равишда тўхтатиб қўйилади (масалан, барча юборувчилар ёпилган ёки йўқ).

  • Nil-каналга ёзиш (nil билан тенг канал) доимий равишда тўхтатиб қўйилади, чунки nil-канал инициализация қилинмаган ва маълумот қабул қила олмайди.

  • Ёзиш ёпилган каналга, Goда, паника (panic) келтиради, чунки бу тақиқланган ва ишга тушириш вақти хатоси ҳисобланади.

Масалан:

var ch chan int // nil-канал

// <-ch // nil-каналдан ўқиш доимий равишда тўхтатиб қўйилади

// ch <- 1 // nil-каналга ёзиш доимий равишда тўхтатиб қўйилади

ch = make(chan int)
close(ch)
// ch <- 2 // panic: ёзиш ёпилган каналга