collection库更新1.4.0版本

collection库一直在使用中,周末集合github上的反馈以及contributor的修改,更新了1.4.0版本。

这个版本做了几个事情:

增加了三种类型, uint, uint32, uint64

这三种类型也算基础类型了,目前基本上已经把所有基础类型都覆盖了,一共十一种类型:

int32, int, int64, uint32, uint, uint64, float32, float64, string, object, objectPoint

增加Split和GroupBy方法

这两个方法其实都是将一个collection进行分组。Split是根据个数,将数组分成几份,比如

intColl := NewIntCollection([]int{1, 2, 3, 4, 5, 6, 7, 8})
    ret := intColl.Split(3)

    if len(ret) != 3 {
        t.Fatal("split len not right")
    }

    ret[0].DD()
    ret[1].DD()
    ret[2].DD()

按照size为3分成3个部分

IntCollection(3):{
    0:  1
    1:  2
    2:  3
}
IntCollection(3):{
    0:  4
    1:  5
    2:  6
}
IntCollection(2):{
    0:  7
    1:  8
}

而GroupBy 是同事使用的时候提的一个需求,需要按照某个函数进行归类,然后输出,类似于spark中的GroupBy算子

func TestInt32Collection_GroupBy(t *testing.T) {
    objColl := NewInt32Collection([]int32{1, 1, 20, 4})
    groupBy := objColl.GroupBy(func(item interface{}, i2 int) interface{} {
        foo := item.(int32)
        return foo
    })

    for k, collection := range groupBy {
        t.Log(k)
        collection.DD()
    }
}

/*
=== RUN   TestInt32Collection_GroupBy
    /Users/yejianfeng/Documents/workspace/collection/int32_collection_test.go:97: 1
Int32Collection(2):{
    0:  1
    1:  1
}
    /Users/yejianfeng/Documents/workspace/collection/int32_collection_test.go:97: 20
Int32Collection(1):{
    0:  20
}
    /Users/yejianfeng/Documents/workspace/collection/int32_collection_test.go:97: 4
Int32Collection(1):{
    0:  4
}
*/

其实还做了几个事情:

1 把测试用例优化了一些,里面有一些直接dd的,感觉比较丑,就去掉了

2 文档补充了一下,包括readme和官方文档

完结,周末愉快~

Original: https://www.cnblogs.com/yjf512/p/15680967.html
Author: 轩脉刃
Title: collection库更新1.4.0版本

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/554354/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 用缓存,你缓存的数据是不是还差点意思?

    原始代码 public String selectLevyInvoiceNameString_Cache(String merId) { List merLevyInvoiceTy…

    技术杂谈 2023年7月11日
    070
  • Spring源码分析(一)-Spring源码编译

    1 下载源码 1.1 fork源码 由于从github网络下载太慢,就直接在gitee下载了gitee源码镜像,fork主要是为了可以添加注释 2.2 下载源码 将fork的源码c…

    技术杂谈 2023年7月25日
    056
  • linux基本命令

    cd 切换文件夹 cd /home 绝对路径 以包目录开头 cd admin 相对路径 不以包目录开头 cd .. 返回上级目录 cd ~ 到自己的家目录 /home/admin …

    技术杂谈 2023年7月24日
    066
  • Lambda表达式

    1.常见单方法接口 Comparator Runnable Callable @FunctionalInterface 只定义了单方法的接口称之为 FunctionalInterf…

    技术杂谈 2023年7月24日
    062
  • Spring Cloud Alibaba分布式事务组件 seata 详解(小白都能看懂)

    一,什么是事务(本地事务)? 指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 简单的说,事务就是并发控制的单位,是用户定义的一个操作序列。 _而一个逻辑…

    技术杂谈 2023年7月11日
    078
  • 【转载】谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词

    谈谈Unicode 编码,简要解释UCS 、UTF 、BMP 、BOM 等名词 这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类…

    技术杂谈 2023年7月24日
    074
  • Day1 使用MarkDown

    二级标题 三级标题 Hello,world Hello,world Hello,world Hello,world java 分割线 超链接 A B VC https://imag…

    技术杂谈 2023年7月10日
    070
  • Python—类属性

    1. 属性 属性是属于对象的 数据或者 函数元素,通过句点标识符访问。 2. 类的数据属性 类的数据属性是指定义在类中的变量,不带self声明,这种变量是静态的(相当于C++中的静…

    技术杂谈 2023年7月11日
    070
  • java学习之Servlet

    Servlet就是一个接口我们需要写一个类然后去实现Servlet,就可以被服务器识别到。request是用来接受客户端传过来的参数,respone是用来响应客户端的页面。我们所用…

    技术杂谈 2023年6月21日
    082
  • 多态

    总结: 多态是一种代码现象 也是一种思想 定义:一个对象,在不同时刻表现出来的多种形态 前提: 存在继承/实现关系 子类重写父类方法/实现类重写接口方法 父类引用指向子类对象/接口…

    技术杂谈 2023年6月21日
    085
  • Thymeleaf是什么?该如何使用。

    先了解Thymeleaf是什么 1. Thymeleaf 简介 Thymeleaf 是新⼀代 Java 模板引擎,与 Velocity、FreeMarker 等传统 Java 模板…

    技术杂谈 2023年6月21日
    081
  • 信息安全之弱口令和社工弱口令规律,及其反制措施(第一章)

    本文只用于讨论和学习,由完全原创,若需要转载引用请在先与我联系,若有疑问或者错误的观点也可以评论区发言,谢谢。 本文研究数据来源于:国内网上常见密码字典(China)、中国高校大学…

    技术杂谈 2023年6月21日
    0107
  • Linux关于防火墙的命令

    Linux关于防火墙的命令 一、red hat/CentOs7关闭防火墙的命令 查看防火墙状态 systemctl status firewalld service iptable…

    技术杂谈 2023年7月11日
    064
  • Azure产品目录

    Loading 计算 Linux 虚拟机:为 Ubuntu、Red Hat 等预配虚拟机 Windows 虚拟机 为 SQL Server、SharePoint 等预配虚拟机 应用…

    技术杂谈 2023年5月30日
    094
  • Linux学习笔记

    网络配置 系统管理 常用命令 帮助命令 文件目录命令 时间日期 用户管理 用户组管理 文件权限 搜索查找 压缩解压 磁盘查看和分区 进程管理 cron系统定时任务 软件包管理 Sh…

    技术杂谈 2023年7月11日
    082
  • 经验分享丨自学多久能达到挖漏洞的水平,漏洞奖金有多少?

    很多关注i春秋的朋友会在论坛、微博、知乎、今日头条等媒体平台点赞我们分享的技能知识,也会私信我们在学习过程中遇到的疑难问题,今天我们开设了春秋问答版块,定期来为大家答疑解惑,希望可…

    技术杂谈 2023年5月31日
    075
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球