Операции с каналами?

Junior
877 просмотров
AFK Offer AI

Основные операции:

ch := make(chan int)      // создание небуферизованного
ch := make(chan int, 10)  // буферизованный на 10
ch <- 42                  // отправка (блокирует если буфер полон)
val := <-ch               // чтение (блокирует если пусто)
close(ch)                 // закрытие

Дополнительно:

  • val, ok := <-ch — проверка, закрыт ли канал
  • range ch — чтение до закрытия
  • select — мультиплексирование нескольких каналов
Отправка в закрытый канал — panic. Чтение из закрытого — возвращает zero value. Закрывать канал должен только отправитель, никогда получатель.

Следующий вопрос

Как работает go mod?