Go语言中如何实现一个set?

提问者:帅平 问题分类:面试刷题
Go语言中如何实现一个set?
1 个回答
青山依旧
青山依旧
用map模拟一个set,把值置为struct{},struct{}本身不占任何空间,可以避免任何多余的内存分配。
type Set map[string]struct{}
func main() {
        set := make(Set)
        for _, item := range []string{"A", "A", "B", "C"} {
                set[item] = struct{}{}
        }
        fmt.Println(len(set)) // 3
        if _, ok := set["A"]; ok {
                fmt.Println("A exists") // A exists
        }
}
发布于:4个月前 (12-25) IP属地:四川省
我来回答