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)

大家都在看

  • iOS获取当前城市

    @property (nonatomic ,retain )CLLocationManager *locationManager; 4.開始定位 (void)locate //推断…

    技术杂谈 2023年5月31日
    081
  • Python之pexpect详解

    Pexpect程序主要用于人机对话的模拟,就是那种系统提问,人来回答yes/no,或者账号登陆输入用户名和密码等等的情况。因为这种情况特别多而且繁琐,所以很多语言都有各种自己的实现…

    技术杂谈 2023年7月11日
    098
  • 拿到任务,先做分解

    分解的目的:简化问题的复杂度 分解任务的好处 怎么分解: 抓住重点,去掉不必要的东西,留下必须要做的,找到任务的主干 按单一职责原则对任务拆解,罗列功能点(比如要实现一个XX模块,…

    技术杂谈 2023年7月25日
    091
  • 一个轻量级的C++log日志库

    一、简介 为了自己使用写的一个简单日志库,使用仅需包含一个头文件,支持Windows和Linux平台,支持多线程控制台输出以及写日志文件。 二、调用方式 #include &quo…

    技术杂谈 2023年7月23日
    0124
  • [学习笔记]Java读取用户输入

    在程序的实际运行过程中,我们很可能会要求用户输入数据以继续运行程序; java.util包提供的Scanner类就可用于读取用户输入; 创建Scanner对象 使用next()方法…

    技术杂谈 2023年7月24日
    089
  • 车类

    function.h include”members.h” include using namespace std; Car::Car(double w, …

    技术杂谈 2023年7月11日
    065
  • 网页正文内容抽取测试

    网页正文内容抽取测试; 通过网页解析,抽取网页正文内容 Original: https://www.cnblogs.com/chenying99/p/10068855.htmlAu…

    技术杂谈 2023年5月31日
    0114
  • 【主流技术】Spring Boot中的微信支付(小程序)

    前言 微信支付是企业级项目中经常使用到的功能,作为后端开发人员,完整地掌握该技术是十分有必要的。 logo 一、申请流程和步骤 图1-1 注册微信支付账号 获取微信小程序APPID…

    技术杂谈 2023年7月10日
    0160
  • 分布式事务框架Seata入门案例

    Seata Server 部署 Seata分TC、TM和RM三个角色,TC(Server端)为单独服务端部署,TM和RM(Client端)由业务系统集成。 首先,下载最新的安装包 …

    技术杂谈 2023年7月23日
    098
  • python PDF转图片,World转PDF

    个人博客地址 http://www.darkghost.life 软件不用续费了。。。 PDF转World暂时没需求,有需求了再搞 Python3.9 1 import tkint…

    技术杂谈 2023年7月25日
    0101
  • Mybatis 源码6 结果集映射流程 ,mybatis插件实现原理和基于mybatis插件实现参数化类型TypeHandler

    一丶前情回顾 书接上回,下面是SimpleExecutor执行查询的主要逻辑 + instantiateStatement 根据数据库连接,创建Statement,具体什么类型的S…

    技术杂谈 2023年7月24日
    090
  • 深入SaltStack

    [译者注] 这是一篇发表在opencredo官网的博文,通过比较流行的Puppet和新发展起来的Salt,详细地介绍了Salt的功能。在征得原作者的同意后,翻译出来,与大家分享。初…

    技术杂谈 2023年5月31日
    0113
  • 数据库连接查询总结

    建表SQL create table account ( account_id bigint PRIMARY KEY AUTO_INCREMENT, name varchar(64…

    技术杂谈 2023年7月11日
    078
  • 微服务架构下的安全认证与鉴权

    https://www.jianshu.com/p/22610b276bee https://zhuanlan.zhihu.com/p/29345083 https://www.j…

    技术杂谈 2023年5月31日
    0111
  • Linux 的基本操作 -权限

    Linux 的基本操作 -权限 权限:文件的属性: d:表示目录-:表示文件 l:连接文件 b:设备文件,提供存储的接口设备 c:设备文件,提供串行的接口设备–键盘,鼠…

    技术杂谈 2023年7月24日
    079
  • 经典的三色旗问题

    首先来看,什么是三色旗问题。 有一根绳子,上面有红、白、蓝三种颜色的旗子。绳子上旗子的颜色并没有顺序,现在要对旗子进行分类,按照蓝色、白色、红色的顺序排列。只能在绳子上进行移动,并…

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