/kgo

k`s golang helper/library/utils 常用函数库/工具集

Primary LanguageGoApache License 2.0Apache-2.0

kgo

k`s golang helper/library/utils
golang 常用函数库/工具集,仅测试支持有限的64位系统.
总共450多个通用的方法,涵盖字符串、数组、文件、时间、加密以及类型转换等操作.

文档

GoDoc Go Report Card Build Status codecov Code Size Starts Version

测试支持(v0.1.5及以后)

  • GO版本
    • 1.16.x
  • OS系统
    • ubuntu-latest
    • macos-latest
    • windows-latest

安装使用

安装

go get -u github.com/kakuilan/kgo

引入

import "github.com/kakuilan/kgo"

依赖的第三方库

  • github.com/json-iterator/go
  • github.com/StackExchange/wmi

函数接收器

  • KFile 为文件操作,如
chk := KFile.IsExist(filename)
  • KStr 为字符串操作,如
res := KStr.Trim(" hello world ")
  • KNum 为数值操作,如
res := KNum.NumberFormat(123.4567890, 3, ".", "")
  • KArr 为数组(切片/字典)操作,如
mp := map[string]string{
"a": "aa",
"b": "bb",
}
chk := KArr.InArray("bb", mp)    
  • KTime 为时间操作,如
res, err := KTime.Str2Timestamp("2019-07-11 10:11:23")
  • KConv 为类型转换操作,如
res := KConv.ToStr(false)
  • KOS 为系统和网络操作,如
res, err := KOS.LocalIP()
  • KEncr 为加密操作,如
res, err := KEncr.PasswordHash([]byte("123456"))
  • KDbug 为调试操作,如
KDbug.DumpPrint(1.2)

具体函数请查看godoc,更多示例请参考*_test.go文件.

测试

#使用go mod
go mod tidy
go mod vendor

#单元测试
go test -race

#压测
time go test -bench=. -run=none
time go test -v -bench=. -cpu=4 -benchtime="10s" -timeout="15s" -benchmem

#代码覆盖率
go test -cover #概览

go test -coverprofile=coverage.out #生成统计信息
go test -v -covermode=count -coverprofile=coverage.out
go tool cover -func=coverage.out #查看统计信息
go tool cover -html=coverage.out #将统计信息转换为html

#性能分析
time go test -timeout 30m -bench=. -benchmem -memprofile memprofile.out -cpuprofile profile.out
go tool pprof profile.out
go tool pprof -http=192.168.1.2:8081 /usr/bin/dot profile.out

更新日志

详见[Changelog]

鸣谢

感谢JetBrains的赞助.
JetBrains