Przypadki, o których należy pamiętać podczas korzystania z poleceń wyboru w języku Golang

W języku Go polecenie SELECT jest podobne do polecenia switch , ale w poleceniu SELECT polecenie case odnosi się do komunikacji, tj. wysyłania lub odbierania operacji na kanale.

Przypadki, o których należy pamiętać podczas korzystania z poleceń wyboru w języku Golang

Składnia:

select{

case SendOrReceive1: // Lệnh
case SendOrReceive2: // Lệnh
case SendOrReceive3: // Lệnh
.......
default: // Lệnh

W tym artykule dowiesz się, jak używać domyślnego przypadku, aby uniknąć impasu. Ale najpierw sprawdźmy, jaki jest przypadek impasu podczas korzystania z polecenia select w języku Go ?

Rzeczy, które należy wiedzieć o przypadku impasu w Golang

Blokada: sytuacja, w której próbujesz odczytać lub zapisać dane z kanału, ale kanał jest pusty. Blokuje więc bieżące wykonywanie gorutyny i przekazuje kontrolę innym gorutynom, ale jeśli żadna inna gorutyna nie jest dostępna lub inne gorutyny są w stanie spoczynku z powodu tej sytuacji, program ulegnie awarii. Zjawisko to nazywane jest impasiem. Jak pokazano w poniższym przykładzie:

Na przykład:

// Chương trình Go minh hoạc
// cách deadlock phát sinh
package main 

// Hàm chính
func main() { 

	// Tạo một kênh
	// Deadlock phát sinh bởi
	// không có goroutine đang viết
	// vào kênh này, vì thế
	// lệnh select đã bị khóa mãi mãi
	c := make(chan int) 
	select { 
	case <-c: }="" }="">

Wynik:

fatal error: all goroutines are asleep - deadlock!

goroutine 1 [chan receive]:
main.main()

Aby uniknąć tej sytuacji, w poleceniu SELECT stosujemy przypadek domyślny. Innymi słowy, gdy w programie wystąpi impas, wykonywany jest domyślny przypadek polecenia SELECT, aby uniknąć impasu. Podobnie jak w poniższym przykładzie, w poleceniu SELECT używamy przypadku domyślnego, aby uniknąć impasu.

Na przykład:

// Chương trình Go minh họa cách giải quyết
// vấn đề deadlock bằng case mặc định
package main 

import "fmt"

// Hàm chính
func main() { 

	// Tạo 1 kênh
	c := make(chan int) 
	select { 
	case <-c: default:="" fmt.println("!..="" default="" case..!")="" }="" }="">

Wynik:

!.. Default case..!

Można również użyć przypadku domyślnego, gdy polecenie SELECT ma tylko kanał nil . Jak pokazano w poniższym przykładzie, kanał c jest pusty, więc jeśli domyślny przypadek nie jest dostępny, wykonywany jest przypadek domyślny, program zostanie zablokowany na zawsze i nastąpi impas.

Na przykład:

// Chương trình Go minh họa
// chạy case mặc định
package main 

import "fmt"

// Hàm chính
func main() { 

	// Tạo một kênh
	var c chan int

	select { 
	case x1 := <-c: fmt.println("value:="" ",="" x1)="" default:="" fmt.println("default="" case..!")="" }="" }="">

Wynik:

Default case..!
Sign up and earn $1000 a day ⋙

Leave a Comment

Jak używać stałych w Golang

Jak używać stałych w Golang

Co to jest Constant lub Const w języku Golang? Oto, co musisz wiedzieć o korzystaniu ze stałych w języku Go.

Funkcje lotne w Golang

Funkcje lotne w Golang

Funkcje zmienne w języku Go umożliwiają przekazywanie zmiennej liczby argumentów do funkcji. Oto wszystko, co musisz wiedzieć o funkcjach ulotnych w języku Go.

Nazwane parametry zwracane w Golang

Nazwane parametry zwracane w Golang

W języku Golang nazwane parametry zwracane są często określane mianem parametrów nazwanych. Język Go pozwala na nazywanie parametrów zwracanych lub wyników funkcji w sygnaturze lub definicji funkcji.

Słowa kluczowe w Go

Słowa kluczowe w Go

Słowo kluczowe – słowa kluczowe to wyrazy w języku, które są używane w odniesieniu do pewnego wewnętrznego procesu lub reprezentują pewne zdefiniowane wcześniej działanie. Oto, co musisz wiedzieć o słowach kluczowych w języku Golang.

Typy danych w Golang

Typy danych w Golang

Typ danych określa typ danych, jakie może zawierać prawidłowa zmienna języka Go. W języku Go typy dzielą się na cztery kategorie:

Argumenty funkcji w Golangu

Argumenty funkcji w Golangu

W języku Go obsługiwane są dwa główne sposoby przekazywania argumentów: przekazywanie przez wartość i przekazywanie przez referencję. Go domyślnie używa przekazywania przez wartość.

Funkcja zwracająca wiele wartości w Golang

Funkcja zwracająca wiele wartości w Golang

W języku Go można zwracać wiele wartości z funkcji, korzystając z polecenia return. Innymi słowy, w funkcji polecenie return może zwracać wiele wartości.

Instrukcja Switch w Go

Instrukcja Switch w Go

Golang, podobnie jak większość innych języków programowania, posiada instrukcję switch. Oto jak używać instrukcji switch w języku Golang.

Anonimowe struktury i pola w Golang

Anonimowe struktury i pola w Golang

Anonimowe struktury w Golangu to tymczasowe struktury bez nazw, używane do jednorazowych celów, natomiast pola anonimowe umożliwiają osadzanie nienazwanych pól.

Jak używać Rune w Golang

Jak używać Rune w Golang

Czym są runy w języku Golang? Jak używać Rune w Golang? Odpowiedź znajdziesz w tym artykule.

Jak używać operatorów w Golang

Jak używać operatorów w Golang

Operatorzy pozwalają nam wykonywać różne typy operacji na operandach. W języku Go operatory można klasyfikować na podstawie ich różnych funkcji.

Identyfikator Void w Golang

Identyfikator Void w Golang

_(podkreślenie) w języku Golang nazywane jest pustym identyfikatorem. Identyfikator to zdefiniowana przez użytkownika nazwa komponentów programu, stosowana w celach identyfikacyjnych.

Jak stworzyć podstawowy program w Golang

Jak stworzyć podstawowy program w Golang

Witaj, świecie! jest pierwszym podstawowym programem w dowolnym języku programowania. Możesz napisać ten pierwszy program w języku Go, wykonując poniższe kroki.

Jak zainstalować Go w systemie Windows

Jak zainstalować Go w systemie Windows

Golang można łatwo zainstalować w systemie Windows. Poniżej znajduje się szczegółowy przewodnik krok po kroku dotyczący instalacji Golang w systemie Windows.

Różnica między zwykłym telewizorem a Smart TV

Różnica między zwykłym telewizorem a Smart TV

Telewizory Smart TV naprawdę podbiły świat. Dzięki tak wielu świetnym funkcjom i możliwościom połączenia z Internetem technologia zmieniła sposób, w jaki oglądamy telewizję.

Dlaczego zamrażarka nie ma światła, a lodówka tak?

Dlaczego zamrażarka nie ma światła, a lodówka tak?

Lodówki to powszechnie stosowane urządzenia gospodarstwa domowego. Lodówki zazwyczaj mają dwie komory: komora chłodna jest pojemna i posiada światło, które włącza się automatycznie po każdym otwarciu lodówki, natomiast komora zamrażarki jest wąska i nie posiada światła.

2 sposoby na naprawę przeciążenia sieci, które spowalnia sieć Wi-Fi

2 sposoby na naprawę przeciążenia sieci, które spowalnia sieć Wi-Fi

Na działanie sieci Wi-Fi wpływa wiele czynników poza routerami, przepustowością i zakłóceniami. Istnieje jednak kilka sprytnych sposobów na usprawnienie działania sieci.

Jak obniżyć wersję iOS 17 do iOS 16 bez utraty danych za pomocą Tenorshare Reiboot

Jak obniżyć wersję iOS 17 do iOS 16 bez utraty danych za pomocą Tenorshare Reiboot

Jeśli chcesz powrócić do stabilnej wersji iOS 16 na swoim telefonie, poniżej znajdziesz podstawowy przewodnik, jak odinstalować iOS 17 i obniżyć wersję iOS 17 do 16.

Co dzieje się z organizmem, gdy codziennie jesz jogurt?

Co dzieje się z organizmem, gdy codziennie jesz jogurt?

Jogurt jest wspaniałym produktem spożywczym. Czy warto jeść jogurt codziennie? Jak zmieni się Twoje ciało, gdy będziesz jeść jogurt codziennie? Przekonajmy się razem!

Który rodzaj ryżu jest najlepszy dla zdrowia?

Który rodzaj ryżu jest najlepszy dla zdrowia?

W tym artykule omówiono najbardziej odżywcze rodzaje ryżu i dowiesz się, jak zmaksymalizować korzyści zdrowotne, jakie daje wybrany przez Ciebie rodzaj ryżu.

Jak obudzić się rano na czas

Jak obudzić się rano na czas

Ustalenie harmonogramu snu i rutyny związanej z kładzeniem się spać, zmiana budzika i dostosowanie diety to niektóre z działań, które mogą pomóc Ci lepiej spać i budzić się rano o odpowiedniej porze.

Wskazówki dotyczące gry Rent Please! Symulator wynajmującego dla nowicjuszy

Wskazówki dotyczące gry Rent Please! Symulator wynajmującego dla nowicjuszy

Proszę o wynajem! Landlord Sim to mobilna gra symulacyjna dostępna na systemy iOS i Android. Wcielisz się w rolę właściciela kompleksu apartamentowego i wynajmiesz mieszkania, a Twoim celem jest odnowienie wnętrz apartamentów i przygotowanie ich na przyjęcie najemców.

Najnowsze kody do obrony wieży łazienkowej i jak je wprowadzać

Najnowsze kody do obrony wieży łazienkowej i jak je wprowadzać

Zdobądź kod do gry Bathroom Tower Defense Roblox i wymień go na atrakcyjne nagrody. Pomogą ci ulepszyć lub odblokować wieże zadające większe obrażenia.

Budowa, symbole i zasady działania transformatorów

Budowa, symbole i zasady działania transformatorów

Poznajmy budowę, symbole i zasady działania transformatorów w jak najbardziej dokładny spos��b.

4 sposoby, w jakie sztuczna inteligencja ulepsza inteligentne telewizory

4 sposoby, w jakie sztuczna inteligencja ulepsza inteligentne telewizory

Od lepszej jakości obrazu i dźwięku po sterowanie głosowe i wiele więcej — te funkcje oparte na sztucznej inteligencji sprawiają, że inteligentne telewizory stają się o wiele lepsze!

Dlaczego ChatGPT jest lepszy niż DeepSeek

Dlaczego ChatGPT jest lepszy niż DeepSeek

Początkowo ludzie wiązali duże nadzieje z DeepSeek. Jako chatbot oparty na sztucznej inteligencji, reklamowany jako silny konkurent ChatGPT, obiecuje inteligentne możliwości i doświadczenia związane z czatem.

Poznaj Fireflies.ai: darmową sekretarkę AI, która zaoszczędzi Ci godzin pracy

Poznaj Fireflies.ai: darmową sekretarkę AI, która zaoszczędzi Ci godzin pracy

Łatwo jest przegapić ważne szczegóły podczas zapisywania innych istotnych informacji, a próba robienia notatek podczas rozmowy może być rozpraszająca. Rozwiązaniem jest Fireflies.ai.

Jak hodować aksolotla w Minecraft, oswoić salamandrę w Minecraft

Jak hodować aksolotla w Minecraft, oswoić salamandrę w Minecraft

Axolot Minecraft będzie świetnym pomocnikiem dla graczy operujących pod wodą, jeśli tylko będą umieli się nim posługiwać.

Konfiguracja gry A Quiet Place: The Road Ahead na PC

Konfiguracja gry A Quiet Place: The Road Ahead na PC

Konfiguracja gry A Quiet Place: The Road Ahead została oceniona dość wysoko, dlatego też przed podjęciem decyzji o pobraniu należy wziąć ją pod uwagę.