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

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

В 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("Канал закрыт")
}

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее