Golang Select Call

Golang Select Call
Wywołanie Golang Select odnosi się do instrukcji przełącznika używanego w komunikacji kanałowej. Pozwala czekać na wiele operacji kanałowych, na przykład wysyłanie lub odbieranie.

Nie ma nic skomplikowanego w wybranych połączeniach w Go.

Składnia jest podobna do instrukcji przełącznika jako:

wybierać
Case ChannelPeration:
//
Case Channeloperation2:
//
Case Chanleoperation3:
//
domyślny:
// Domyślna sprawa

Golang Select

Rozważ następujący przykład kodu, który ilustruje, jak korzystać z wywołania Go Wybierz.

Pakiet Main
importować „fmt”
func main ()
Channel1: = Make (chan string)
Channel2: = make (chan string)
GO FUNC ()
kanał 1 <- "channel 1"
()
GO FUNC ()
Channel2 <- "channel 2"
()
wybierać
Case MSG11: = <-channel1:
fmt.Println („Wiadomość otrzymana z:”, MSG11)
przypadek msg2: = <-channel2:
fmt.Println („Wiadomość otrzymana z:”, msg2)

Jeśli uruchomimy poprzedni kod, zauważysz, że otrzymujemy inne dane wyjściowe w każdym biegu. Instrukcja Select wybiera dowolne dane wyjściowe, jeśli wszystkie sprawy są gotowe.

Możemy wybrać domyślny przypadek za pomocą domyślnego słowa kluczowego, aby zapobiec zablokowaniu połączenia Wybierz.

Przykładem jest jak pokazano:

Pakiet Main
importować „fmt”
func main ()
Channel1: = Make (chan string)
Channel2: = make (chan string)
GO FUNC ()
kanał 1 <- "channel 1"
()
GO FUNC ()
Channel2 <- "channel 2"
()
wybierać
Case MSG11: = <-channel1:
fmt.Println („Wiadomość otrzymana z:”, MSG11)
przypadek msg2: = <-channel2:
fmt.Println („Wiadomość otrzymana z:”, msg2)
domyślny:
fmt.Println („Goroutines nie są gotowe!")

Poprzedni program uruchomi przypadek domyślny, ponieważ Goroutines są gotowe i nie zwróciły żadnego wyjścia.

Wniosek

Możemy użyć wywołania Go Wybierz, aby selektywnie pobierać dane z kilku kanałów. Wybierz połączenie losowo wybierze dane, jeśli wszyscy dostawcy są gotowi. Jeśli żaden nie jest gotowy, wykonujemy domyślną sprawę. Mamy nadzieję, że znalazłeś ten artykuł. Sprawdź inne artykuły w Linux, aby uzyskać więcej wskazówek i informacji.