Junior
Какви операции могат да се изпълняват с канали в Go?
sobes.tech AI
Отговор от 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)