Назад к вопросам
Junior
121
questionbank
Какие операции можно выполнять с каналами в Go?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
- Отправка (
<-chan) - Получение (
chan<-) - Закрытие (
close) - Проверка на закрытие (второе возвращаемое значение при получении)
- Использование в
select - Определение буферизации (с помощью
cap) - Определение текущего количества элементов (с помощью
len)
Пример:
// Создание буферизованного канала
ch := make(chan int, 5)
// Отправка значения
ch <- 10
// Получение значения
val := <-ch
// Проверка на закрытие при получении
val, ok := <-ch
// Закрытие канала
close(ch)
// Использование в select
select {
case msg1 := <-ch1:
// обработка сообщений из ch1
case msg2 := <-ch2:
// обработка сообщений из ch2
default:
// нет доступных сообщений
}
// Определение буферизации
bufferSize := cap(ch)
// Определение текущего количества элементов
currentElements := len(ch)