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.