Mapa Golang

Mapa Golang
Mapy są podstawową strukturą danych w większości języków programowania. Mapy odnoszą się do zbioru par kluczowych używanych do przechowywania danych nieopisanych. W innych językach programowania mapy są nazywane słownikami, haszem, tablicą asocjacyjnym, mapą skrótu lub map nie zamówionych.

Bez względu na nazwę, mapy zapewniają wszechstronność, szybki i wydajny wygląd danych, aktualizacje i usuwa za pomocą zestawu unikalnych klawiszy.

Głównym celem tego samouczka jest poprowadzenie Cię przez tworzenie i używanie map w języku programowania Go.

Utwórz mapę

Istnieją dwa sposoby utworzenia mapy w języku programowania Go.

Mapa dosłownie

Pierwszą metodą jest użycie mapy słów kluczowych, a następnie typu danych klucza (zamkniętego w nawiasach kwadratowych) i typu danych wartości.

Po zdefiniowaniu mapy możesz wstawić zestaw par kluczowych do pary kręconych aparatów ortodontycznych.

Składnia jest jak pokazana:

Mapa [klucz] wartość
kluczowa wartość

Mapy są bardzo przydatne przy przechowywaniu powiązanych danych, takich jak informacje o użytkowniku. Na przykład następujący kod tworzy mapę przechowywania informacji o użytkowniku.

user_info: = map [String] String
„ID”: „1”,
„Nazwa”: „Jonh Doe”,
„Wydział”: „Deweloper gier”,
„Wynagrodzenie”: „140 000 $”,
„Kraj”: „Bułgaria”,

Należy zauważyć, że pary wartości kluczowej mapy są zamknięte wewnątrz kręconych aparatów ortodontycznych. Wartość po lewej stronie okrężnicy reprezentuje klucz, podczas gdy wartość po prawej stronie reprezentuje powiązaną wartość.

W powyższym przykładzie formatujemy pary wartości kluczowej jako JSON dla łatwiejszej czytelności; Możesz jednak mieć jedną liner jako:

user_info: = map [String] String
„ID”: „1”, „Nazwa”: „Jonh Doe”, „Department”: „Game Developer”, „Wynagrodzenie”: „140 000 $”, „kraj”: „Bułgaria”,

Upewnij się, aby oddzielić każdą parę wartości kluczowej z przecinkiem.

Podejście funkcjonalne

Drugą metodą, której możesz użyć do utworzenia mapy w Go, jest funkcja Make. Jest to wbudowana funkcja, która pozwala przekazać typ mapy do utworzenia. Zwraca zainicjowaną mapę. Składnia jest jak pokazana poniżej:

make (mapa [key_type] value_type)

Funkcja zwróci pustą mapę.

Możesz przypisać mapę do zmiennej, takiej jak inne języki programowania, jak pokazano w powyższych przykładach.

Aby wyświetlić wartości kluczowe w tablicy, możesz użyć FMT.Metoda println, jak pokazano w poniższym przykładzie:

Pakiet Main
importować „fmt”
func main ()
user_info: = map [String] String
„ID”: „1”, „Nazwa”: „Jonh Doe”, „Department”: „Game Developer”, „Wynagrodzenie”: „140 000 $”, „kraj”: „Bułgaria”,

fmt.Println („mapy:”, user_info)

Kod powyżej powinien zwrócić dane wyjściowe jak pokazano:

::wyjście
Mapy: Mapa [Kraj: Bułgaria Departament: Twórca gier ID: 1 Nazwa: Jonh Doe Wynagrodzenie: 140 000 $]

Dostęp do elementów mapy

Aby uzyskać wartość przechowywaną na mapie, możesz użyć jej unikalnego klucza. Golang powinien zwrócić wartość powiązaną z określonym kluczem.

Na przykład:

fmt.Println (user_info [„name”])

Powyższy fragment powinien zwrócić wartość powiązaną z kluczowym „nazwa” z mapy user_info.

Wyjście jest tak, jak pokazano ”

::wyjście
Jonh Doe

Ponieważ każdy klucz na mapie jest unikalny, powyższy kod powinien zawsze zwracać jedną wartość powiązaną z kluczem, jeśli istnieje.

Dlatego skorzystanie z map jest skuteczne w przypadku powiązanych informacji.

Iteracja mapy

Nadchodzi następne pytanie, jak iterować elementy na mapie? W przeciwieństwie do innych języków programowania, które zapewniają wbudowane funkcje w celu pobierania kluczy i wartości, Go nie.

Pozwala jednak na iterować mapę za pomocą operatora zasięgu.

Weźmy przykładową mapę user_info, którą utworzyliśmy wcześniej. Możemy użyć operatora zasięgu, aby iterować klawisze i wartości mapy, jak pokazano w poniższym kodzie przykładowym:

dla k, v: = zakres user_info
fmt.Printf (" %q -> %q \ n", k, v)

W powyższym kodzie iTo będzie iteracja nad elementami i zwróci każdy klucz i powiązaną wartość. Zauważ, że Go utworzy zmienne z typem zestawu. Na przykład zarówno klucz, jak i wartość to ciągi; Dlatego możemy użyć formattera %Q do wydrukowania jego wartości za pomocą funkcji PrintF.

Powstałe wyjście jest jak pokazano:

„ID” -> „1”
„Nazwa” -> „Jonh Doe”
„Wydział” -> „Deweloper gier”
„Wynagrodzenie” -> „140 000 $”
„kraj” -> „Bułgaria”

Co się stanie, gdy trzeba uzyskać dostęp tylko do kluczy? Możesz zadeklarować zmienną do przechowywania klawiszy, a następnie użyć operatora zasięgu w takim scenariuszu.

Rozważ przykład pokazany poniżej:

Klucze: = [] String
dla k: = zakres user_info
klawisze = append (klawisze, k)

fmt.Printf („%Q”, klucze)

W powyższym przykładzie zaczynamy od zdefiniowania plasterek do przechowywania kluczy z mapy. Następnie używamy operatora zasięgu, aby iterować klawisze i dołączamy każdy klucz do plastra.

Na koniec drukujemy klawisze za pomocą metody printf. Powstałe wyjście jest jak pokazano:

[„ID” „nazwa” „dział” „wynagrodzenie” „kraj”]

Stosujesz tę samą technikę powyżej, aby uzyskać wartości mapy.

Długość mapy

W Golang możesz uzyskać długość mapy za pomocą metody LEN. Zwraca to liczbę elementów na mapie.

Na przykład:

fmt.Println (len (user_info))

Liczba elementów na mapie to:

5

Dodaj, aktualizuj, usuń klawisze i wartości

W Go mapy są zmienne. Oznacza to, że możesz dodawać, usuwać lub aktualizować istniejące elementy na mapie.

Spójrzmy na kilka przykładów wykonywania takich operacji.

Dodaj nową pozycję

Aby dodać nowy element do mapy, odwołaj się do nazwy mapy, a następnie klucza w nawiasach kwadratowych i pojedynczym śpiewu (=), aby przypisać nową wartość.

Składnia jest jak pokazana:

Map_name [klucz] = wartość

Dodajmy nowy klucz do mapy user_info, jak pokazano w poniższym przykładzie:

user_info [„dob”] = "06/06/1995"

W powyższym przykładzie dodajemy nowy element o nazwie „DOB” do mapy user_info. Pamiętaj, że elementy na mapie nie są uporządkowane. Dlatego dodanie nowego elementu nie oznacza, że ​​pojawi się jako ostatni lub pierwszy element na mapie.

Zaktualizuj element

Załóżmy, że musimy zmienić informacje o użytkowniku. Na przykład powiedzmy, że użytkownik dostał podwyżkę (tak!) i musimy zaktualizować informacje.

Możemy użyć podobnej składni jako dodawania nowego klucza. W tym przypadku odnosimy się jednak do istniejącego klucza na mapie.

Przykładem jest jak pokazano:

user_info [„wynagrodzenie”] = „160 000 $”

Powyższy kod powinien zmienić wartość klucza „wynagrodzenia” na nową określoną wartość.

Powstałe wyjście jest jak pokazano:

fmt.Println (user_info)

Wyjście jest tak, jak pokazano:

[Kraj: Bułgaria Departament: Deweloper gier DOB: 06/06/1995 ID: 1 Nazwa: Jonh Doe Wynagrodzenie: 160 000 $]

Zwróć uwagę na aktualizację nowej wartości klucza wynagrodzeń w celu odzwierciedlenia nowych danych.

Wskazówka: lepszym sposobem na myślenie jest to, jeśli element istnieje, zaktualizuj wartość; W przeciwnym razie utwórz nowy element.

Usuń element

GO pozwala również usunąć element z mapy. Używamy metody delete (), która przyjmuje dwa argumenty.

Pierwszym argumentem jest nazwa zmiennej mapy, pod którą do usuwania elementu, a drugi jest kluczem do usunięcia.

Spójrz na przykład pokazany poniżej:

delete (user_info, „dział”)
fmt.Println (user_info)

Funkcja usunie „dział” z mapy user_info. Powstała mapa jest jak pokazana:

Mapa [Kraj: Bułgaria ID: 1 Nazwa: Jonh Doe Wynagrodzenie: 140 000 $]

Wyczyść mapę

Załóżmy, że chcesz wyczyścić mapę wszystkich istniejących elementów? Aby to zrobić, możesz ustawić wartości na pustą mapę z tym samym kluczem i typem wartości.

Na przykład:

user_info = map [string] String

Powyższy przykład powinien ponownie inicjować mapę użytkownika_info do pustej mapy.

Wskazówka: Mapy są zbiorem nieopisanym, a operacje takie jak iteracje nie zawsze będą skutkować tej samej kolejności elementów. Jeśli zamówienie jest koniecznością, rozważ inny typ danych.

Wniosek

W tym przewodniku badaliśmy mapy w języku programowania Go. Za pomocą map możesz utworzyć zestaw nie zamówionych elementów i użyć każdego unikalnego klucza, aby uzyskać dostęp do elementów. To usuwa potrzebę dostępu do indeksów.

Dziękujemy za przeczytanie i wróć po więcej samouczków.