Kontekst jest tak przydatny, że wiele bibliotek w ekosystemie Go używa. Znajdziesz je również w aplikacjach, które wchodzą w interakcje ze zdalnymi serwerami, bazami danych, połączeniami API i innymi.
W tym artykule zapewniamy początkowe wprowadzenie do pakietu kontekstowego w Go i sposób korzystania z kontekstu w różnych przypadkach użycia.
Kontekst według wartości
Jednym z głównych przypadków użycia kontekstów w GO jest udostępnianie danych lub użycie wartości złożonych z żądania. Pakiet kontekstowy Golang zapewnia funkcję Wavelue, która umożliwia udostępnianie danych.
Składnia funkcji jest jak pokazana:
FUNC withValue (kontekst nadrzędny, klucz, interfejs val ) kontekst
Funkcja przyjmuje kontekst, klucz i wartość jako parametry. Następnie funkcja utworzy nowy kontekst w oparciu o dostarczony nadrzędny i doda określoną wartość do klawisza SET.
Pomyśl o tym jak o kontekście wewnętrznym z typem pary wartości kluczowej w środku. Następnie możesz pobrać lub pobierać wartości z typu.
Rozważ poniższy przykład, który ilustruje, jak korzystać z funkcji withValue i pobierać z niej wartości.
Pakiet MainSkoncentruj się na głównej funkcji powyższego kodu. Zaczynamy od utworzenia nowego obiektu kontekstowego, CTX, z kontekstem.Funkcja tła ().
Funkcja tła zwróci następnie pusty kontekst inny niż zerowy bez anulowania, bez wartości i bez terminów.
Funkcja tła służy jako inicjalizacja przychodzących żądań kontekstowych.
Wartości ustawione na kontekście
Drugą częścią funkcji jest funkcja addValues (). W tym przykładzie przyjmujemy nowy kontekst i wiążymy go z istniejącym kontekstem. Nowy kontekst ma klucz do dodania do kontekstu.
Zauważ, że funkcja withValue zwraca kopię kontekstu nadrzędnego i nie modyfikuje istniejącego kontekstu.
Kontekst odzyskuj wartości
Drugą częścią programu jest funkcja odzyskiwaniaValue (). W takim przypadku przyjmujemy strukturę kontekstową i pobieramy wartości powiązane z określonym kluczem.
Jeśli klucz istnieje w kontekście, funkcja powinna zwrócić powiązaną wartość.
Jeśli klucz nie istnieje, funkcja powinna zwrócić zero. Możemy zaimplementować logikę warunkową, aby sprawdzić, czy wartość zwrócona jest zerowa i zwrócić błąd, jeśli jest to prawda.
Kontekst z limitą limitu czasu
Innym powszechnym przypadkiem użycia kontekstów jest obsługa limitu czasu. Na przykład może być konieczne zdefiniowanie limitu czasu w niektórych aplikacjach, jeśli określone działanie nie jest wykonywane. Jest to niezwykle proste do wdrożenia za pomocą funkcji z czasem z pakietu kontekstowego. Przyjrzyjmy się, jak możemy wdrożyć limit czasu za pomocą pakietu kontekstowego.
Pakiet MainW tym przykładzie definiujemy funkcję anulowania za pomocą kontekstu.Z funkcją czasową. Następnie możemy ręcznie uruchomić funkcję Anuluj.
Po osiągnięciu wartości limitu czasu funkcja anulowania jest wywoływana i uruchamia określoną logikę.
W naszej funkcji wartości odzyskiwania stale pobieramy wartość za pomocą określonego klucza za pomocą pętli dla. Sprawdzamy również, czy wyczerpany kanał z głównego kontekstu wciąż żyje. Jeśli limit czasu nie przekroczy, kontekst nadrzędny będzie nadal otwarty, ale po osiągnięciu limitu czasu kontekst zostanie anulowany.
W naszym przykładzie funkcja będzie działać co 1 sekundę przed osiągnięciem limitu czasu. Przykładem jest to, jak pokazano:
wartośćWniosek
To był krótki i fundamentalny samouczek omawiający konteksty i sposób korzystania z nich w programach GO. Możesz sprawdzić dokumentację, aby dowiedzieć się więcej o kontekstach GO.