Sobes.tech
Junior — Middle

Kuidas implementida andmestruktuur Set Go keeles?

sobes.tech AI

Vastus AI-lt

Go keeles ei ole sisseehitatud Set tüüpi, kuid seda saab rakendada kasutades kaarti (map) koos võtmetüübiga ja väärtusega bool või tühja struktuuri struct{}. Näiteks, stringide kogumi saab teha järgmiselt:

package main

import "fmt"

func main() {
    set := make(map[string]struct{})

    // Elementide lisamine
    set["apple"] = struct{}{}
    set["banana"] = struct{}{}

    // Kontroll, kas element on olemas
    if _, exists := set["apple"]; exists {
        fmt.Println("õun on kogumis")
    }

    // Elementi kustutamine
    delete(set, "banana")

    // Elementide läbikäimine
    for key := range set {
        fmt.Println(key)
    }
}

Tühi struktuur struct{} kasutamine säästab mälu, kuna see võtab 0 baiti.