1.Go切片去掉重复元素

如果传入的是string类型:

//slice去重
func removeRepByMap(slc []string) []string {
result := []string{} //存放返回的不重复切片
tempMap := map[string]byte{} // 存放不重复主键
for _, e := range slc {
l := len(tempMap)
tempMap[e] = 0 //当e存在于tempMap中时,再次添加是添加不进去的,,因为key不允许重复
//如果上一行添加成功,那么长度发生变化且此时元素一定不重复
if len(tempMap) != l { // 加入map后,map长度变化,则元素不重复
result = append(result, e) //当元素不重复时,将元素添加到切片result中
}
}
return result
}

如果传入的是int类型:

//slice去重
func removeRepByMap(slc []int) []int {
result := []int{} //存放返回的不重复切片
tempMap := map[int]byte{} // 存放不重复主键
for _, e := range slc {
l := len(tempMap)
tempMap[e] = 0 //当e存在于tempMap中时,再次添加是添加不进去的,,因为key不允许重复
//如果上一行添加成功,那么长度发生变化且此时元素一定不重复
if len(tempMap) != l { // 加入map后,map长度变化,则元素不重复
result = append(result, e) //当元素不重复时,将元素添加到切片result中
}
}
return result
}

当然如果传入的是其它类型,把对应类型改掉即可

最新文章

  1. mysql习惯及主从复制参数设置
  2. 解决vi/vim中粘贴会在行首多很多缩进和空格的问题
  3. 嵌入式开发板iTOP-4412开发板移植CAN模块
  4. 递归---n皇后
  5. Android进阶笔记14:ListView篇之ListView性能优化
  6. C#中日期时间的简单操作
  7. 【BZOJ 3529】 [Sdoi2014]数表 (莫比乌斯+分块+离线+树状数组)
  8. discuz二次开发笔记(三)------discuz的安装步骤
  9. nginx upstream setting
  10. 自己动手实现Expression翻译器 – Part Ⅲ
  11. MvcPager
  12. 容器扩展属性 IExtenderProvider 实现WinForm通用数据验证组件
  13. Linux下如何释放cache内存
  14. Date对象和正则对象
  15. bug单的生命周期
  16. C#中的 隐式与显式接口实现
  17. 洛谷P1107[BJWC2008]雷涛的小猫题解
  18. Vue 实际项目中你可能会遇见问题
  19. 解决pycharm在ubuntu下搜狗输入法一直固定在左下角的问题
  20. openstack(Pike 版)集群部署(六)--- Horizon 部署

热门文章

  1. Ajax跨域请求,设置content
  2. 微信小程序跳转传参参数丢失?
  3. Vue组件通信的几种方法
  4. 剑指offer 25:二叉树中和为某一值的路径
  5. ramfs 和 tmpfs 以及 ramdisk相关调研
  6. 第二章 简单的HTTP协议
  7. es6模板字符串使用使${} 来包裹一个变量或者一个表达式
  8. #3145. 「APIO 2019」桥梁
  9. [转]使用IConfigureNamedOptions和ConfigureAll配置命名选项
  10. WPF 解决多个TreeViewItem同时触发某事件的简单方法