Sobes.tech
Junior

Welke bewerkingen kunnen worden uitgevoerd met kanalen in Go?

sobes.tech AI

Antwoord van AI

  • Verzending (<-chan)
  • Ontvangst (chan<-)
  • Sluiten (close)
  • Controle op sluiting (de tweede waarde bij ontvangst)
  • Gebruik in select
  • Bepalen van buffering (met cap)
  • Bepalen van het huidige aantal elementen (met len)

Voorbeeld:

// Creëren van een gebufferde kanaal
ch := make(chan int, 5)

// Verzenden van een waarde
ch <- 10

// Ontvangen van een waarde
val := <-ch

// Controle op sluiting bij ontvangst
val, ok := <-ch

// Kanaal sluiten
close(ch)

// Gebruik in select
select {
case msg1 := <-ch1:
	// Verwerking van berichten uit ch1
case msg2 := <-ch2:
	// Verwerking van berichten uit ch2
default:
	// Geen beschikbare berichten
}

// Bepalen van buffer grootte
bufferSize := cap(ch)

// Bepalen van het huidige aantal elementen
currentElements := len(ch)