Menu
Coddy logo textTech

Idiom zbioru w Go

Część sekcji Logika i przepływ sterowania ścieżki GO w Coddy. Lekcja 31 z 68.

Go nie ma wbudowanej struktury danych zbioru, jak wiele innych języków programowania. Programiści Go opracowali jednak eleganckie rozwiązanie, które wykorzystuje mapy do symulowania zbiorów. Ten wzorzec stał się tak powszechny, że uznaje się go za idiomatyczny dla Go.

Idiom zbioru w Go wykorzystuje mapę, w której liczą się tylko klucze, a nie wartości. Ponieważ jako wartość trzeba coś przechować, programiści Go używają pustej struktury struct{}. Oto podstawowy wzorzec:

var mySet map[string]struct{}

Pusta struktura struct{} jest wyjątkowa, ponieważ zajmuje zero bajtów pamięci. Dzięki temu doskonale nadaje się do zbiorów, w których trzeba jedynie śledzić, czy coś istnieje, czy nie, bez marnowania pamięci na bezwartościowe wartości.

To podejście wykorzystuje podstawową właściwość kluczy mapy: muszą być unikatowe. Gdy dodajesz element do zbioru, tak naprawdę dodajesz klucz do mapy. Mapa automatycznie wymusza unikatowość, zapewniając semantykę zbioru.

W kolejnych lekcjach nauczysz się tworzyć zbiory, manipulować nimi i korzystać z nich, stosując ten idiomatyczny wzorzec języka Go. Ta technika jest powszechnie stosowana w bazach kodu Go do śledzenia unikalnych elementów, implementowania algorytmów i rozwiązywania problemów wymagających szybkiego sprawdzania przynależności do zbioru.

Spróbuj swoich sił

Ta lekcja nie zawiera wyzwania z kodem.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Go online