Junior — Middle
Jak zaimplementować strukturę danych Set w języku Go?
sobes.tech AI
Odpowiedź od AI
W języku Go nie ma wbudowanego typu Set, ale można go zaimplementować za pomocą mapy (map) z kluczami odpowiedniego typu i wartością bool lub pustą strukturą struct{}. Na przykład, zbiór łańcuchów można utworzyć tak:
package main
import "fmt"
func main() {
set := make(map[string]struct{})
// Dodawanie elementów
set["apple"] = struct{}{}
set["banana"] = struct{}{}
// Sprawdzanie, czy element istnieje
if _, exists := set["apple"]; exists {
fmt.Println("apple jest w zbiorze")
}
// Usuwanie elementu
delete(set, "banana")
// Iteracja po elementach
for key := range set {
fmt.Println(key)
}
}
Użycie pustej struktury struct{} zamiast bool oszczędza pamięć, ponieważ zajmuje 0 bajtów.