Map ist eine ungeordnete Sammlung von Schlüssel-Wert-Paaren. Der wichtigste Punkt von Map besteht darin, Daten schnell über einen Schlüssel abzurufen, der einem Index ähnelt und auf den Wert der Daten verweist.
Map ist eine Sammlung, daher können wir darüber iterieren, genau wie Arrays und Slices. Map ist jedoch ungeordnet und wir können die Reihenfolge, in der es zurückgegeben wird, nicht bestimmen. Dies liegt daran, dass Map mithilfe einer Hash-Tabelle implementiert wird.
Werfen wir einen Blick auf die Methode zur Bestimmung, ob ein Kanal in Golang geschlossen ist:
Bestimmen Sie beim Lesen eines Kanals, ob er geschlossen wurde
_,ok := <- jobs
Wenn der Kanal zu diesem Zeitpunkt geschlossen ist, ist der ok-Wert falsch
Beim Schreiben in die Kanal, stellen Sie fest, ob er geschlossen wurde
1._,ok := <- jobs
Wenn der Kanal zu diesem Zeitpunkt geschlossen ist, wird der Der ok-Wert ist falsch. Wenn der Kanal nicht geschlossen ist, wird ein Job verpasst
2. Verwenden Sie die Auswahlmethode
, um einen weiteren Kanal zu erstellen. Wenn es zu einer Zeitüberschreitung kommt, senden Sie „true“ an diesen Kanal, und der Produzent sendet Daten an den Kanal des Jobs. Verwenden Sie „select“, um die Zeitüberschreitung zu überwachen. Wenn es zu einer Zeitüberschreitung kommt, schließen Sie den Jobkanal.
go func() { time.Sleep(time.Second * 3) timeout <- true }()
go func() { for i := 0; ; i++ { select { case <-timeout: close(jobs) return default: jobs <- i fmt.Println("produce:", i) } } }()
Für mehr Golang Wenn Sie über Kenntnisse verfügen, beachten Sie bitte die Spalte Golang-Tutorial auf der chinesischen PHP-Website.
Das obige ist der detaillierte Inhalt vonSo ermitteln Sie, ob der Kanal in Golang geschlossen ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!