Sobes.tech
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)