首页 > 其他分享 >Go的Set实现

Go的Set实现

时间:2023-12-10 19:11:07浏览次数:24  
标签:Set string val 实现 func Go mapSet struct

Go的Set实现

  • 由于Go的内置集合中没有Set的实现,可以用map[type]struct{}
    要求:
    1、元素的唯一性
    2、基本操作:添加、删除、判断是否存在、统计元素数量
    3、可遍历集合
//声明Set
type Set struct {
   //利用map,实现的Set集合
   mapSet map[string]struct{}
}
//新增
func (s *Set) add(val string) {
   s.mapSet[val] = struct{}{}
}
//删除
func (s *Set) delete(val string) {
   delete(s.mapSet, val)
}
//是否存在
func (s *Set) exist(val string) bool{
   if _, ok :=s.mapSet[val]; !ok {
      return false
   }
   return true
}
//计数
func (s *Set) count(val string) int {
   return len(s.mapSet)
}
//遍历:直接for遍历s.mapSet

标签:Set,string,val,实现,func,Go,mapSet,struct
From: https://www.cnblogs.com/lz0925/p/17893075.html

相关文章

  • 接口实现多态,本质上是接口方法实现的多态
    比如接口:interfaceFly{ voidname(); voidkkk();} Flyf=subObj;//其实多态发生在这里,f会找到其真实类型,即subObj的真实类型//然后去找真实类型里是否实现了voidname()这个方法,没有找到则再找subObject类型的父类型或接口,这样一层层的去找//在java里是会从......
  • 算法之快速排序5非递归实现
    一:概述绝大多数的递归逻辑都可以利用栈的方式去代替。代码中一层一层的方法调用,本身就是使用一个方法调用栈。每次进入一个新的方法,就相当于入栈。每次有方法返回就相当于出栈。所以,可以把原本的递归实现转换成一个栈的实现,在栈中存储每一次方法调用的参数。二:具体代码实现/*非......
  • mp实现一个自连接查询
    起因是我设置了一个考核表结构,其中包含指标值,指标当前值,是主副指标等列。后面我要进行考核的验收的时候,我发现验收要取得的是主当前指标值/主指标值以及副指标当前值/副指标值。如果想要让这两条数据一次都被查到,那么就需要进行自连接查询(查询同一个表两次,但是有些需要的输出内容......
  • go热加载
    Skiptocontent cosmtrek/air   CodeIssues84Pullrequests27DiscussionsActionsProjectsSecurityInsights         masterBreadcrumbsair/README-zh_cn.mdt Lates......
  • PHP中cookie,session的使用和用户自动登录的实现
    cookie的使用//生成cookie//注释:setcookie()函数必须位于<html>标签之前。//setcookie(name,value,expire,path,domain);//名称,值,过期时间,有效路径,有效域名//path,可选;如果路径设置为"/",那么cookie将在整个域名内有效.如果路径设置为"/test/",那么cookie将在test......
  • Java实现对Hadoop HDFS的API操作
    1.配置Hadoop的Windows客户端Hadoop配置Windows客户端2.新建Maven项目[略]3.添加依赖<!--https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client--><dependency><groupId>org.apache.hadoop</groupId>......
  • vue3中自定义ref实现防抖
    import{customRef}from"vue";/***@description自定义ref实现防抖*@param{String}value*@param{Number}delay*@returns*/exportconstdebounceRef=(value,delay)=>{lettimer;returncustomRef((track,trigger)=>({......
  • 实现excle文件的导入和导出
    @RequestMapping("/export")publicvoidexport(HttpServletResponseresponse){try{List<User>list=userMapper.findAll();ExcelWriterexcelWriter=ExcelUtil.getWriter(true);excelWriter.write......
  • Home-图片懒加载指令实现
    场景和指令用法场景:某些网站首页通常会很长,用户不一定能访问到页面靠下面的图片,这类图片通过懒加载优化手段可以做到,只有进入视口区域才发送图片请求指令用法:<imgv-img-lazy="item.picture"/>在图片img身上绑定指令,该图片只有正式进入到视口区域时才会发送图片网络请求实现......
  • VUE框架CLI组件化全局事件总线实现原理------VUE框架
    <template> <div> <!--内置函数的实现步骤--> <!--提供事件源,给事件源绑定事件,编写回调函数,将回调函数和事件进行绑定--> <!--等待事件的触发,事件触发执行回调函数--> <!--组件的自定义事件实现步骤--> <button@click="Hello()">你好</button> <!--给Us......