Categorygithub.com/mzzsfy/go-util
repository
1.7.4
Repository: https://github.com/mzzsfy/go-util.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

go的一些工具类,大量运用了泛型,最低要求 golang 1.18

项目遵守:

  • 不引入任何第三方库
  • 全力使用泛型
  • 尽量优化性能
  • 提供优雅可读的函数签名

本项目可能会有破坏性的修改函数签名行为,不要轻易升级

简单说明

  • seq
    一个高性能的golang的泛型链式调用库,实现了类似java stream逻辑,不依赖chan和goroutine,支持任意类型的链式调用,支持并行化( 可限制并行数量),排序等

    // 从19开始,每次减3,直到-10,额外添加100,10,0,1,过滤出偶数,再丢弃前5个,从小到大排序,打印到控制台
    FromIntSeq(19, -10, -3).Add(-100,100,10,0,1).Filter(func(i int) bool {
        return i%2 == 0
    }).Drop(5).Order(LessT[int]).ForEach(func(i int) {
        fmt.t.Log(i)
    })
    // a 1 b 2 c 3
    // "a,b,c"
    BiFromMap(map[string]int{"a": 1, "b": 2, "c": 3}).OnEach(func(k string, v int) {
        print(k, v)
    }).KSeq().JoinString(func(s string){retrun s}, ",")
    

    更多例子见: seq_test.go biSeq_test.go

    参考来源: https://mp.weixin.qq.com/s/v-HMKBWxtz1iakxFL09PDw

  • config
    工作模式类似spring配置工具类

  • unsafe
    获取goroutine id,hash等不安全操作

  • concurrent
    一些并发相关的工具,包含可重入锁等

  • pool
    一些池化工具:携程池,对象池

  • queue
    简单的队列

  • storage
    map等存储工具,swissMap,gls等

  • logger
    日志工具

  • helper
    一些工具,如: 字符串处理,时间日期处理,cron任务,延时任务 等