Go语言中的Set类型



  • 看了Go语言的书后发现它有切片和map类型,但是没有Set类型,那么这时候如果需要用到Set类型如何实现呢?
    借助map和struct就可以很轻易的实现,利用两个特点:
    1、map的key是不会重复的
    2、struct{}是占用0内存空间的


    // 先定义map类型,key为int32,value为struct{}
    var mySet map[int32]struct{}
    // 使用make为map分配内存并初始化
    mySet = make(map[int32]struct{})
    // 使用mySet
    mySet[0] = struct{}{}
    mySet[100] = struct{}{} 
    

    struct{}{}的定义

     struct{}  {}
    |  ^     | ^
      type     empty element list
    

Log in to reply