Über das Verständnis von select in Golang

藏色散人
Freigeben: 2020-08-26 11:46:45
nach vorne
2827 Leute haben es durchsucht

, um Ihnen Ihr Verständnis von Select in Golang näher zu bringen. Ich hoffe, Freunden zu helfen, die es brauchen!

Die Syntax der Select-Anweisung und der Switch-Anweisung ist sehr ähnlich, aber der Fall in Select muss eine Kommunikationsoperation (eine Kanaloperation) sein. Die Ausführungslogik lautet: Über das Verständnis von select in GolangWelche Kanaloperation hinter dem Case erfolgreich ausgeführt werden kann, dann wird der Codeblock unter dem Case ausgeführt

. Können mehrere Fälle gleichzeitig erfolgreich ausgeführt werden, wird einer davon zufällig ausgewählt. Wenn keiner der Fälle erfolgreich ausgeführt werden kann, wird der standardmäßige Codeblock ausgeführt. Wenn es keinen Standardwert gibt, wird es blockiert und ein Deadlock-Fehler zurückgegeben.

E/A-Vorgänge überwachen und entsprechende Aktionen auslösen, wenn E/A-Vorgänge auftreten.

Diese Aussage ist in der Tat das Anwendungsszenario von Select, aber verwechseln Sie sie nicht mit der Select-Anweisung In diesem Fall wird die Channel-Operation ausgeführt! Dieses Verständnis ist falsch! Was Select tatsächlich auswählt, ist der Fall, in dem die Kanaloperation erfolgreich ausgeführt werden kann, und dann wird der Codeblock in diesem Fall ausgeführt.

Zum Beispiel, wenn ein Kanal c1 mit einem Datenelement geschrieben wird

c1 := make(chan string, 1)c1 <- "Hello World!"
Nach dem Login kopieren

Wenn wir die folgende Select-Beurteilungsaussage haben
select {
    case <-c1:
        fmt.Println("Case 1 is selected")
    case c1<-"Hello World!":
        fmt.Println("Case 2 is selected")
    default :
        fmt.Println("Default is selected")}
Nach dem Login kopieren

Sie erhalten die folgenden Ergebnisse

Case 1 is selected
Nach dem Login kopieren

Da c1 mit einem Datenelement geschrieben wird, Wir können erfolgreich „von c1 ein Datenelement lesen“. Das heißt, der erste Fall kann erfolgreich ausgeführt werden. Daher wird der Codeblock im ersten Fall schließlich ausgeführt.

                                                                                                             

Das obige ist der detaillierte Inhalt vonÜber das Verständnis von select in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!