Junior
What operations can be performed with channels in Go?
sobes.tech AI
Answer from AI
- Sending (
<-chan) - Receiving (
chan<-) - Closing (
close) - Checking for closure (second return value when receiving)
- Using in
select - Defining buffering (using
cap) - Determining current number of elements (using
len)
Example:
// Creating a buffered channel
ch := make(chan int, 5)
// Sending a value
ch <- 10
// Receiving a value
val := <-ch
// Checking for closure when receiving
val, ok := <-ch
// Closing the channel
close(ch)
// Using in select
select {
case msg1 := <-ch1:
// handle messages from ch1
case msg2 := <-ch2:
// handle messages from ch2
default:
// no messages available
}
// Defining buffer size
bufferSize := cap(ch)
// Determining current number of elements
currentElements := len(ch)