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和官方文档

3 官网也顺手更新了一下,http://collection.funaio.cn/ 。不过好像github有个action机制,还没研究清楚怎么更新github同时更新自己服务器上的vuepress。

完结,周末愉快~

collection库更新1.4.0版本的更多相关文章

  1. ios pod库更新到1.0或1.0.1之正确修改podfile文件

    今天看到cocopods都更新到1.0.1了,之前什么时候更新到的1.0都没发现,刚刚更新一下之后,立马出现了一大堆的错误. 如果没有更新的话,建议不要更新!!!书写麻烦了! 现在记录如何一步一步去除 ...

  2. ElasticSearch5.0+版本分词热更新实践记录

    前言 刚开始接触ElasticSearch的时候,版本才是2.3.4,短短的时间,现在都更新到5.0+版本了.分词和head插件好像用法也不一样了,本博客记录如何配置Elasticsearch的Hea ...

  3. vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布

    框架介绍 这是一个基于vue.element-ui.iview..netcore3.1 可支持前端.后台动态扩展业务代码快速开发框架. 框架内置定制开发的代码生成器,生成的代码不需要复制也不需要更改, ...

  4. C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) C#各版本新特性 C#版本和.NET版本以及VS版本的对应关系

    C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) 2017年08月06日 11:53:13 阅读数:6705 历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有1 ...

  5. 示例:自定义WPF底层控件UI库 HeBianGu.General.WpfControlLib V2.0版本

    原文:示例:自定义WPF底层控件UI库 HeBianGu.General.WpfControlLib V2.0版本 一.目的:封装了一些控件到自定义的控件库中,方便快速开发 二.实现功能: 基本实现常 ...

  6. Excelize 发布 2.6.0 版本,功能强大的 Excel 文档基础库

    Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Exc ...

  7. Excelize 发布 2.3.0 版本, Go 语言 Excel 文档基础库

    Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Exc ...

  8. Excelize 发布 2.2.0 版本, Go 语言 Excel 文档基础库

    Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Exc ...

  9. 微信快速开发框架(六)-- 微信快速开发框架(WXPP QuickFramework)V2.0版本上线--源码已更新至github

    4月28日,已增加多媒体上传及下载API,对应MediaUploadRequest和MediaGetRequest ------------------------------------------ ...

随机推荐

  1. Spark性能调优——9项基本原则

    原则一:避免创建重复的RDD 通常来说,我们在开发一个Spark作业时,首先是基于某个数据源(比如Hive表或HDFS文件)创建一个初始的RDD:接着对这个RDD执行某个算子操作,然后得到下一个RDD ...

  2. [loj2304]泳池

    将等于$k$差分,即小于等于$k$减去小于等于$k-1$,由于两者类似,不妨仅考虑前者 令$f_{i,j}$表示仅考虑$i$列(即$n=i$时),若前$j$行都没有障碍,此时最大面积小于等于$k$的概 ...

  3. [cf1217F]Forced Online Queries Problem

    可以用并查集维护连通性,删除可以用按置合并并查集,但删掉一条边后无法再维护两点的联通性了(因为产生环的边是不加入的)暴力思路是, 考虑前i个操作后边的集合,暴力加入即可,但复杂度是$o(n^2)$的用 ...

  4. 关于 RocketMQ ClientID 相同引发的消息堆积的问题

    首先,造成这个问题的 BUG RocketMQ 官方已经在 3月16号 的这个提交中修复了,这里只是探讨一下在修复之前造成问题的具体细节,更多的上下文可以参考我之前写的 <RocketMQ Co ...

  5. nginx得请求转发代码-将请求转发到网关

    首先:本地主机host更改成 192.168.111.1 gulimail.com 这样一访问网址就能映射到本地. 然后修改nginx得conf worker_processes 1; events ...

  6. JDK中Lambda表达式的序列化与SerializedLambda的巧妙使用

    前提 笔者在下班空余时间想以Javassist为核心基于JDBC写一套摒弃反射调用的轻量级的ORM框架,过程中有研读mybatis.tk-mapper.mybatis-plus和spring-boot ...

  7. Python的数据解析

  8. 1D RKDG to shallow water equations

    RKDG to shallow water equations 1.Governing Equations \[\frac{\partial U}{\partial t} + \frac{\parti ...

  9. shell 脚本在linux中的应用

    shell脚本在linux中应用广泛,之前一直选用python写脚本来进行一些文件操作,但是最后发现shell脚本非常方便,所以特意来学习下皮毛,便于提高自己效率 定义变量 1 country=&qu ...

  10. LearnPython_week4

    1.装饰器2.生成器3.迭代器4.内置方法5.可序列化6.项目规范化 1.装饰器 # -*- coding:utf-8 -*- # Author:Wong Du ### 原代码 def home(): ...