• Go 自定义集合类型


    package main
    
    import "fmt"
    
    //定义MySet类型
    type MySet map[interface{}]bool
    //判断元素是否存在
    func (m MySet) isExist(a interface{}) bool {
        return m[a]
    }
    //返回set长度
    func (m MySet) len() int {
        return len(m)
    }
    //设置值
    func (m MySet) set(a interface{}) {
        m[a] = true
    }
    //删除值
    func (m MySet) delete(a interface{}) {
        delete(m, a)
    }
    //测试代码
    func main() {
        //创建一个set
        var a MySet = make(MySet)
        //相当于
        //var a MySet = make(map[interface{}]bool)
        //打印set的长度
        //fmt.Println(a.len())
        //放入一个值
        a.set(1)
        //放入一个相同值
        a.set(1)
        a.set("lqz")
        a.set("lqz")
        a.set("lqz")
        a.set("lqz")
        a.set("lqz")
        a.set("lqz")
        //打印长度,还是1
        //fmt.Println(a.len())
        //判断1是否存在
        //fmt.Println(a.isExist(2))
        ////删除1
        a.delete(1)
        ////判断1是否存在
        fmt.Println(a.isExist(1))
        fmt.Println(a.len())
    
        for i,_:=range a{
            fmt.Println(i)
        }
    }
  • 相关阅读:
    建立十字链表
    KMP算法
    魔术师发牌问题(循环链表)
    约瑟夫问题(循环链表)
    中缀表达式 转 (逆)波兰表达式
    中缀表达式求值
    迷宫问题(回溯法)
    范数
    AUC
    概率论
  • 原文地址:https://www.cnblogs.com/ZhZhang12138/p/14886742.html
Copyright © 2020-2023  润新知