Sobes.tech
Назад к вопросам
Junior — Middle
89

Какие операции доступны для выполнения с каналами передачи данных?

Ответ от нейросети

sobes.tech AI

В Go каналы (channels) используются для передачи данных между горутинами и обеспечивают синхронизацию. Основные операции с каналами:

  • Отправка данных: ch <- value — отправляет значение в канал.
  • Получение данных: value := <-ch — получает значение из канала.
  • Закрытие канала: close(ch) — закрывает канал, после чего в него нельзя отправлять данные, но можно читать оставшиеся.
  • Проверка закрытия при чтении: value, ok := <-ch — если ok равно false, канал закрыт и данных больше нет.

Пример:

ch := make(chan int)
go func() {
    ch <- 42
    close(ch)
}()

value, ok := <-ch
if ok {
    fmt.Println("Получено:", value)
} else {
    fmt.Println("Канал закрыт")
}