


Wie kann ich in Go aus einer beschrifteten for-Schleife von außerhalb ihres Gültigkeitsbereichs ausbrechen?
Aus einer beschrifteten For-Schleife von außerhalb des Gültigkeitsbereichs ausbrechen
In Go kann es schwierig sein, eine beschriftete For-Schleife aus dem Code zu unterbrechen existiert außerhalb des Gültigkeitsbereichs der Schleife. Dies kommt häufig vor, wenn eine Go-Routine zum Ausführen periodischer Aufgaben verwendet wird und die Schleife basierend auf bestimmten Bedingungen beendet werden soll.
Lösung:
Um dies zu erreichen, können wir Folgendes tun: ein Signalkanal. So geht's:
- Erstellen Sie einen Signalisierungskanal:
<code class="go">quit := make(chan struct{})</code>
Ein Kanal vom Typ struct{}{} wird verwendet Senden Sie ein Signal, dass die Schleife unterbrochen werden soll. Dieser Kanal wird außerhalb des Schleifenbereichs erstellt.
- Kanal zur Signalunterbrechung schließen:
Wenn die Bedingung zum Unterbrechen der Schleife erfüllt ist, Wir schließen den Kanal:
<code class="go">close(quit)</code>
Durch das Schließen des Kanals signalisieren wir, dass die Go-Routine beendet werden soll.
- Ändern Sie die For-Schleife mit einer Select-Anweisung:
In die beschriftete for-Schleife eine Select-Anweisung einbauen, um auf das Signal vom Kanal zu warten:
<code class="go">myLoop: for { select { case <-quit: break myLoop default: // Continue looping } }
Wenn der Quit-Kanal geschlossen ist, erkennt die Select-Anweisung Dies führt die Break-Anweisung aus und bricht effektiv aus der Schleife aus.
- Rufen Sie die Go-Routine auf:
<code class="go">go func (){ for { // Loop continues until count > 5 or quit channel is closed fmt.Println("I will print every second", count) count++ if count > 5 { close(quit) wg.Done() return } <-t.C } }()</code>
In dieser Go-Routine , die Select-Anweisung ist nicht erforderlich, da die Schleife bereits als Go-Routine ausgeführt wird und nicht blockiert werden muss.
Durch Befolgen dieser Schritte können Sie aus einer gekennzeichneten for-Schleife von außerhalb des Schleifenbereichs ausbrechen Verwenden Sie einen Signalkanal.
Das obige ist der detaillierte Inhalt vonWie kann ich in Go aus einer beschrifteten for-Schleife von außerhalb ihres Gültigkeitsbereichs ausbrechen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

GO Language Pack Import: Was ist der Unterschied zwischen Unterstrich und ohne Unterstrich?

Wie kann ich kurzfristige Informationsübertragung zwischen Seiten im BeEGO-Framework implementieren?

Wie konvertieren Sie die Liste der MySQL -Abfrageergebnisse in eine benutzerdefinierte Struktur -Slice in Go -Sprache?

Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren?

Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go?

Wie schreibe ich Dateien in Go Language bequem?

Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen?
