Golang erstellen Kanal
Bevor wir einen Kanal in Go verwenden können, müssen wir einen erstellen. Um einen Kanal in Go zu erstellen, können wir mit der Funktion Make -Funktion einen neuen Kanal erstellen.
Die Syntax ist wie gezeigt:
machen (Chan Val-Type)Denken Sie daran, dass ein Kanal für den Datentyp sensibel ist. Dies bedeutet.
Das folgende Beispiel erstellt einen Kanal, der nur String -Typen unterstützen kann:
CH: = make (chan String)Sobald wir einen Kanal deklariert haben, können wir Werte senden und empfangen.
Werte senden und empfangen
Wir können Werte mit dem Kanal senden und empfangen <- operator. An example code is as shown below:
Paket MainIm vorherigen Beispiel erstellen wir eine grundlegende Goroutine, mit der die Daten an den Kanal "CH" gesendet werden können. Wir erhalten dann die Daten aus dem Kanal und drucken sie aus.
Struktur per Kanal senden
Wir können Strukturdaten auch über einen Kanal senden, vorausgesetzt, wir erstellen den Kanal mit dem richtigen Typ.
Betrachten Sie das folgende Code -Beispiel:
Paket MainWenn wir den vorherigen Code ausführen, sollte er den Vornamen drucken, wie er von der Struktur über den Kanal gesendet wird.
Unidirektionale Kanäle
Wie bereits erwähnt, sind Go -Kanäle standardmäßig bidirektional. Wir können jedoch einen Kanal definieren, damit er Werte entweder senden oder empfangen kann, aber nicht beides. Dies ist als unidirektionaler Kanal bekannt.
Die Syntax ist wie gezeigt:
CH: = make (chan<- data_type) // send-only channelBeachten Sie die Position des Kanaloperators in der vorherigen Syntax.
Das folgende Beispiel erstellt nur einen Send-Kanal:
Paket MainBeachten Sie, dass der vorherige Kanal auf nur Senden eingestellt ist. Wir versuchen jedoch, über den Kanal zu empfangen, und der Compiler gibt einen Fehler zurück, wie gezeigt:
ungültige Operation: <-ch (receive aus Nur-Send-Typ Chan<- string)
Kanäle schließen
Wir können einen Kanal schließen, nachdem die erforderlichen Werte gesendet wurden. Dafür verwenden wir die enge Funktion. Es nimmt den Namen des Kanals auf. Anschließend schließt es den Kanal und gibt einen booleschen Wert zurück, mit dem Sie überprüfen können, ob der Kanal geschlossen ist.
Ein Beispiel ist unten gezeigt:
Paket MainDas vorherige Beispiel schließt den Kanal mit der Methode close (). Wir verwenden dann den von der Funktion zurückgegebenen Booleschen Wert, um zu überprüfen, ob der Kanal geschlossen ist.
Abschluss
Dieser Leitfaden führt Sie durch die Arbeit mit Kanälen in der Go -Programmiersprache. Der Prozess des Erstellens eines Kanals, des Sendens und Empfangens von Werten, zum Senden von Strukturmaten über einen Kanal, die Erklärung der unidirektionalen Kanäle und das Schließen der Kanäle wurden diskutiert. Wir hoffen, Sie haben diesen Artikel hilfreich gefunden. Weitere Tipps und Informationen finden Sie in den anderen Linux -Hinweisartikeln.