Sobes.tech
Middle

Чӣ гуна ба кор даровардани паника ҳангоми кор бо канал? Дар амалҳо бо каналҳои nil ва каналҳои баста чӣ мешавад?

sobes.tech AI

Ҷавоб аз AI

В Go, паника при работе с каналами возникает в следующих случаях:

  • Отправка значения в закрытый канал (chan <- value) вызывает панику.
  • Закрытие уже закрытого канала (close(chan)) вызывает панику.

Что касается nil-каналов:

  • Операции отправки и получения с nil-каналом блокируются навсегда (deadlock), но не вызывают панику.

Пример:

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

// <-ch // блокируется навсегда
// ch <- 1 // блокируется навсегда

ch = make(chan int)
close(ch)

// ch <- 1 // panic: send on closed channel

close(ch) // panic: close of closed channel