Sobes.tech
Junior

Welche Operationen können mit Kanälen in Go durchgeführt werden?

sobes.tech KI

Antwort von AI

  • Senden (<-chan)
  • Empfangen (chan<-)
  • Schließen (close)
  • Überprüfung auf Schließung (zweiter Rückgabewert beim Empfangen)
  • Verwendung in select
  • Definition der Puffergröße (mit cap)
  • Bestimmung der aktuellen Anzahl der Elemente (mit len)

Beispiel:

// Erstellen eines gepufferten Kanals
ch := make(chan int, 5)

// Senden eines Werts
ch <- 10

// Empfangen eines Werts
val := <-ch

// Überprüfung auf Schließung beim Empfang
val, ok := <-ch

// Kanal schließen
close(ch)

// Verwendung in select
select {
case msg1 := <-ch1:
	// Verarbeitung von Nachrichten aus ch1
case msg2 := <-ch2:
	// Verarbeitung von Nachrichten aus ch2
default:
	// Keine verfügbaren Nachrichten
}

// Bestimmung der Puffergröße
bufferSize := cap(ch)

// Bestimmung der aktuellen Anzahl der Elemente
currentElements := len(ch)