Categorygithub.com/tzdq/go-utils
repository
1.0.3
Repository: https://github.com/tzdq/go-utils.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

# README

GoUtils

该库主要用于学习,实现一些常见的golang 函数,打造成一个工具库

1. crypt

加解密相关,包含hash、base64、aes、rsa、padding、random等

1.1 hash

1.2 random

1.3 padding

1.4 aes

1.5 rsa

2. file

文件相关,实现了文件读写、文件判断等函数,有如下函数:

  • CheckAndCreate:检查目录是否存在,如果不存在,创建目录
  • IsExist:判断文件是否存在
  • IsFile:判断是目录还是文件
  • CreateFile:创建文件,如果文件所处的目录不存在,会创建目录
  • ReadAll:从文件中读取全部内容
  • ReadFile:从文件中读取全部内容,推荐使用该函数
  • ReadByBytes:按照字节读取文件,如果bits为0,默认按照1024字节
  • WriteFile4IOUtil:使用ioutil写入文件,默认清空文件内容后追加,如果文件不存在会创建文件
  • WriteFile4OS:使用os写入文件,默认清空文件内容后追加,如果文件不存在会创建文件
  • WriteFile4BufIO:使用bufio写入文件,默认清空文件内容后追加,如果文件不存在会创建文件
  • WriteFile:写入文件,默认清空文件内容后追加,如果文件不存在会创建文件

3. mathx

数学相关,实现了absIntX和absFloat32,需要注意一些特殊值,例如math.MinIntX和math.MaxIntX,存在数值范围越界的情况。有如下函数:

  • AbsInt8:int8取绝对值
  • AbsInt16:int16取绝对值
  • AbsInt32:int32取绝对值
  • AbsInt64:int64取绝对值
  • AbsFloat32:float32 取绝对值

4. timex

4.1 time

实现时间获取、处理、比较、转换,支持如下函数:

  • GetNow:获取当前时间戳(s)
  • GetNowMs:获取当前时间戳(ms)
  • GetNowUs:获取当前时间戳(us)
  • GetNowNs:获取当前时间戳(ns)
  • GetNowString:获取当前时间,返回字符串格式
  • GetNowRFC3339:获取RFC3339格式的当前时间,返回字符串格式
  • GetNowTime:获取当前时间,返回time.Time格式(2021-05-06 15:02:24.4718541 +0800 CST)
  • GetNowYMD:获取当前时间的年月日,返回字符串格式(2021-05-06)

4.2 time_counter

实现了一个时间计数器,可用于统计函数块的执行时间,TimeCounter的定义如下

type TimeCounter struct {
    int64
}

支持如下函数:

  • NewTimeCounter:初始化TimeCount对象,内部会调用Set开始计时
  • Set:开始计时
  • Get:返回从开始到现在的时间间隔(s)
  • GetMs:返回从开始到现在的时间间隔(ms)
  • GetUs:返回从开始到现在的时间间隔(us)
  • GetNs:返回从开始到现在的时间间隔(ns)

5. cache

本地缓存,实现了一个支持lru、支持设置过期时间和文件读写的本地缓存