Golang Create Channel
Før vi kan bruke en kanal i Go, må vi lage en. For å lage en kanal i Go, kan vi bruke Make -funksjonen til å lage en ny kanal.
Syntaksen er som vist:
Make (Chan Val-type)Husk at en kanal er følsom for datatypen. Dette betyr at vi ikke kan sende en int -verdi gjennom en strengkanal.
Følgende eksempel oppretter en kanal som bare kan støtte strengtyper:
CH: = Make (Chan String)Når vi har erklært en kanal, kan vi sende og motta verdier.
Sende og mottak av verdier
Vi kan sende og motta verdier ved hjelp av kanalen <- operator. An example code is as shown below:
pakkehovedI forrige eksempel oppretter vi en grunnleggende goroutine for å sende dataene til kanalen "CH". Vi mottar deretter dataene fra kanalen og skriver dem ut.
Sender struktur via kanal
Vi kan også sende strukturdata gjennom en kanal, forutsatt at vi oppretter kanalen med riktig type.
Tenk på følgende kodeeksempel:
pakkehovedHvis vi kjører forrige kode, skal den skrive ut fornavnet som mottatt av strukturen som ble sendt gjennom kanalen.
Ensrettede kanaler
Som nevnt er GO -kanaler toveis som standard. Vi kan imidlertid definere en kanal slik at den enten kan sende eller motta verdier, men ikke begge deler. Dette er kjent som en ensrettet kanal.
Syntaksen er som vist:
CH: = Make (Chan<- data_type) // send-only channelLegg merke til kanaloperatørens plassering i forrige syntaks.
Følgende eksempel oppretter en kun kanal:
pakkehovedMerk den forrige kanalen er satt til Send-Only. Vi prøver imidlertid å motta gjennom kanalen, og kompilatoren returnerer en feil som vist:
Ugyldig operasjon: <-ch (receive fra Send-bare type Chan<- string)
Lukkende kanaler
Vi kan lukke en kanal etter at de nødvendige verdiene er sendt. For det bruker vi den nære funksjonen. Det tar navnet på kanalen. Den lukker deretter kanalen og returnerer en boolsk verdi som du kan bruke for å sjekke om kanalen er lukket.
Et eksempel er vist nedenfor:
pakkehovedDet forrige eksemplet lukker kanalen ved å bruke close () -metoden. Vi bruker deretter den boolske verdien som returneres fra funksjonen for å sjekke om kanalen er lukket.
Konklusjon
Denne guiden leder deg gjennom hvordan du jobber med kanaler i Go -programmeringsspråket. Prosessen med å lage en kanal, sende og motta verdier, sende strukturdata via en kanal, forklare ensrettede kanaler og lukke kanalene ble diskutert. Vi håper du fant denne artikkelen nyttig. Sjekk ut de andre Linux -hint -artiklene for flere tips og informasjon.