• collection库更新1.4.0版本


    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。

    完结,周末愉快~

    实时了解作者更多技术文章,技术心得,请关注微信公众号“轩脉刃的刀光剑影”

    本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名叶剑峰(包含链接http://www.cnblogs.com/yjf512/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系

  • 相关阅读:
    Linux配置Java环境
    Oracle的flashback特性之一:Flashback Query
    Oracle的flashback特性之二:Flashback Table
    吴恩达深度学习笔记 (补)1.1~1.5 神经网络概述
    吴恩达深度学习笔记 2.10~2.18 向量化与python
    吴恩达深度学习笔记 2.6~2.9 logistic中的梯度下降
    吴恩达深度学习笔记 2.3 logistic回归损失
    吴恩达深度学习笔记2.2 logistic回归
    吴恩达深度学习笔记2.1 二分分类
    [ubuntu]安装并使用python 3.6及与2.7的切换
  • 原文地址:https://www.cnblogs.com/yjf512/p/15680967.html
Copyright © 2020-2023  润新知