基础功能库
- ikit
- 安装
- 功能
- 使用文档
- igoroutine
- NewMulti(num int) *Multi
- (m *Multi) Run(f func() error)
- (m *Multi) Wait() []error
- NewDivide(multi *Multi, opts ...DivideOption) *Divide
- OptTotal(total int) DivideOption
- OptPageSize(pageSize int) DivideOption
- OptPage(page int) DivideOption
- (d *Divide) GetTotal() int
- (d *Divide) Run(f func(page, pageSize int) (total int, err error)) []error
- ihttp
- ilog
- iutil
- HanLess(s1, s2 string) bool
- MinInt(a, b int) int
- MaxInt(a, b int) int
- LoadYaml(filename, subPath string, s interface{})
- SetRootPath(r string)
- GetRootPath() string
- ToJson(input interface{}) string
- Trim(str string) string
- StringBytes(s string) []byte
- BytesString(b []byte) string
- StructMap(st interface{}, m map[string]interface{}) error
- igoroutine
go get -u github.com/weirwei/ikit
- ihttp 请求
- ilog 日志
- iutil 工具包
对go 的协程进行一些封装,提供便利的工具
- Multi: 协程控制器,可以控制单次任务的最大协程数
- Divide: 分批处理器,可以并发分批处理数据
创建一个Multi,控制协程数为num
Multi 并发执行f()
阻塞,等待协程执行完毕,返回错误信息
创建一个Divide,用于并发分批处理数据
设置数据总量
设置分页大小
设置分页
获取数据总量
进行分组运行,入参为执行的函数,返回参数为错误信息
发送http 请求 目前仅支持post 和get 请求 使用方式见 测试文件
发送post 请求
发送get 请求
简单封装了log
使用时仅直接调用方法即可
ilog.Infof("get a info %s", m)
网罗了一些好用的工具
比较两个汉字字符串,如果
s1 < s2
返回true
- 拼音相同,字不同,比较编码大小
- 字相同,比较下一个字
- 有字 > 无字
- 字符串完全相同返回ture
返回较小值
返回较大值
加载应用根目录(可通过
SetRootPath(r string)
设置应用根目录路径)下相对路径为subPath
下的 yaml 文件内容到s
结构体。
设置应用根目录路径,默认为
.
返回当前应用根目录
将结构体转化为 json 字符串,如果序列化失败,返回空字符串
去除所有空白字符
字符串转 byte 数组(使用同一片内存)
byte 数组转字符串(使用同一片内存)
将结构体转
map
,依赖 json 转换,需要 json tag