Back to questions
Junior — Middle
90
Какие операции доступны для выполнения с каналами передачи данных?
Answer from AI
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("Канал закрыт")
}