cmn

package
v0.21.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 22, 2024 License: MIT Imports: 65 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FMT_MM_DD                   = "MM-dd"
	FMT_YYYYMM                  = "yyyyMM"
	FMT_YYYY_MM                 = "yyyy-MM"
	FMT_YYYY_MM_DD              = "yyyy-MM-dd"
	FMT_YYYYMMDD                = "yyyyMMdd"
	FMT_YYYYMMDDHHMMSS          = "yyyyMMddHHmmss"
	FMT_YYYYMMDDHHMM            = "yyyyMMddHHmm"
	FMT_YYYYMMDDHH              = "yyyyMMddHH"
	FMT_YYMMDDHHMM              = "yyMMddHHmm"
	FMT_MM_DD_HH_MM             = "MM-dd HH:mm"
	FMT_MM_DD_HH_MM_SS          = "MM-dd HH:mm:ss"
	FMT_YYYY_MM_DD_HH_MM        = "yyyy-MM-dd HH:mm"
	FMT_YYYY_MM_DD_HH_MM_SS     = "yyyy-MM-dd HH:mm:ss"
	FMT_YYYY_MM_DD_HH_MM_SS_SSS = "yyyy-MM-dd HH:mm:ss.SSS"

	FMT_MM_DD_EN                   = "MM/dd"
	FMT_YYYY_MM_EN                 = "yyyy/MM"
	FMT_YYYY_MM_DD_EN              = "yyyy/MM/dd"
	FMT_MM_DD_HH_MM_EN             = "MM/dd HH:mm"
	FMT_MM_DD_HH_MM_SS_EN          = "MM/dd HH:mm:ss"
	FMT_YYYY_MM_DD_HH_MM_EN        = "yyyy/MM/dd HH:mm"
	FMT_YYYY_MM_DD_HH_MM_SS_EN     = "yyyy/MM/dd HH:mm:ss"
	FMT_YYYY_MM_DD_HH_MM_SS_SSS_EN = "yyyy/MM/dd HH:mm:ss.SSS"

	FMT_MM_DD_CN               = "MM月dd日"
	FMT_YYYY_MM_CN             = "yyyy年MM月"
	FMT_YYYY_MM_DD_CN          = "yyyy年MM月dd日"
	FMT_MM_DD_HH_MM_CN         = "MM月dd日 HH:mm"
	FMT_MM_DD_HH_MM_SS_CN      = "MM月dd日 HH:mm:ss"
	FMT_YYYY_MM_DD_HH_MM_CN    = "yyyy年MM月dd日 HH:mm"
	FMT_YYYY_MM_DD_HH_MM_SS_CN = "yyyy年MM月dd日 HH:mm:ss"

	FMT_HH_MM       = "HH:mm"
	FMT_HH_MM_SS    = "HH:mm:ss"
	FMT_HH_MM_SS_MS = "HH:mm:ss.SSS"
)

日期格式模板

Variables

This section is empty.

Functions

func AbsInt

func AbsInt(a int) int

绝对值

func AbsInt64

func AbsInt64(a int64) int64

绝对值

func AmountToCny

func AmountToCny(val string) string

金额数字转人民币大写(最大支持千万亿,小数只精确到分,分以下舍去。超过支持的最大值时原样返回不转换)

1234567890123456.789 -> 壹仟贰佰叁拾肆万伍仟陆佰柒拾捌亿玖仟零壹拾贰万叁仟肆佰伍拾陆元柒角捌分 -1234567890123456.78 -> 负壹仟贰佰叁拾肆万伍仟陆佰柒拾捌亿玖仟零壹拾贰万叁仟肆佰伍拾陆元柒角捌分 12345.7 -> 壹万贰仟叁佰肆拾伍元柒角整 12345.0 -> 壹万贰仟叁佰肆拾伍元整 12345 -> 壹万贰仟叁佰肆拾伍元整 9002300040 -> 玖拾亿零贰佰叁拾万零肆拾元整 9002300043.0 -> 玖拾亿零贰佰叁拾万零肆拾叁元整 12345678901234567.781 -> 12345678901234567.781

func Base62 added in v0.10.12

func Base62(bts []byte) string

Base62编码(同Base62Encode)

func Base62Decode added in v0.10.12

func Base62Decode(str string) ([]byte, error)

Base62解码

func Base62Encode added in v0.10.12

func Base62Encode(bts []byte) string

Base62编码

func Base64

func Base64(bts []byte) string

Base64编码(同Base64Encode)

func Base64Decode

func Base64Decode(str string) ([]byte, error)

Base64解码

func Base64Encode

func Base64Encode(bts []byte) string

Base64编码

func BoolToString

func BoolToString(b bool) string

bool 转 string

func BytesToReader added in v0.7.6

func BytesToReader(bts []byte) io.Reader

[]byte 转 io.Reader

func BytesToString

func BytesToString(b []byte) string

[]byte 转 string

func BytesToUint32

func BytesToUint32(bytes []byte) uint32

[]byte 转 uint32

func BytesToUint64

func BytesToUint64(bytes []byte) uint64

[]byte 转 uint64

func CamelToUnderline

func CamelToUnderline(str string) string

驼峰转全小写下划线(已含下划线时直接转小写)

func Contains

func Contains(str string, substr string) bool

判断是否包含(区分大小写)

func ContainsIngoreCase

func ContainsIngoreCase(str string, substr string) bool

判断是否包含(忽略大小写)

func ContainsItem added in v0.10.20

func ContainsItem(ary []string, str string, ingnoreCase ...bool) bool

判断数组中是否包含指定字符串

func ContentType added in v0.9.6

func ContentType(dotExt string, contentTypeMap map[string]string) string

按扩展名如 .html 取ContentType,优先取自定义再取mime,都取不到返回"application/octet-stream"

func CopyDir added in v0.7.9

func CopyDir(srcDir, dstDir string) error

复制目录(源目录中的文件和子目录,复制到目标目录,目标目录不存在时自动创建)

func CopyFile

func CopyFile(srcFilePath string, dstFilePath string) error

复制文件

func CreateBlankTempFile added in v0.16.0

func CreateBlankTempFile() string

在系统目录中创建临时文件

func Debug

func Debug(v ...any)

打印Debug级别日志,参数将忽略nil,参数含多个GlcData时仅最后一个有效

func DecodeRsa

func DecodeRsa(str string, priKey string) (string, error)

按Base64解码字符串后使用私钥进行RSA解密

func DecodeRsaByPriFile

func DecodeRsaByPriFile(str string, pubKeyFileName string) (string, error)

按Base64解码字符串后使用私钥文件进行RSA解密

func DecodeRsaBytes

func DecodeRsaBytes(cipherText, privateKey []byte) ([]byte, error)

使用秘钥解密

func DecodeRsaBytesByPriFile

func DecodeRsaBytesByPriFile(data []byte, privateKeyFileName string) ([]byte, error)

使用私钥文件进行RSA解密

func Dir added in v0.9.12

func Dir(path string) string

返回目录,同filepath.Dir(path)

func EncodeRsa

func EncodeRsa(str string, pubKey string) (string, error)

使用公钥进行RSA加密后按Base64编码字符串

func EncodeRsaByPubFile

func EncodeRsaByPubFile(str string, pubKeyFileName string) (string, error)

使用公钥文件进行RSA加密后按Base64编码字符串

func EncodeRsaBytes

func EncodeRsaBytes(data []byte, publicKey []byte) ([]byte, error)

使用公钥加密

func EncodeRsaBytesByPubFile

func EncodeRsaBytesByPubFile(data []byte, pubKeyFileName string) ([]byte, error)

使用公钥文件进行RSA加密

func Endwiths

func Endwiths(str string, endstr string, ignoreCase ...bool) bool

判断是否指定后缀

func EqualsIngoreCase

func EqualsIngoreCase(str1 string, str2 string) bool

判断是否相同(忽略大小写)

func Error

func Error(v ...any)

打印Error级别日志,参数将忽略nil,参数含多个GlcData时仅最后一个有效

func ExecCmd

func ExecCmd(command string) (stdout, stderr string, err error)

执行命令(Windows时为cmd,否则是bash)

func ExecTime

func ExecTime(fn func()) int64

计算函数执行时间(毫秒)

func FasthttpPostJson

func FasthttpPostJson(url string, jsondata string, headers ...string) ([]byte, error)

使用Fasthttp进行Post请求,固定Content-Type:application/json;charset=UTF-8,其他自定义headers格式为 K:V

func FileExtName

func FileExtName(name string) string

取文件扩展名,如“.txt”

func FileName

func FileName(name string) string

取文件名,如“abc.txt”

func FileNameWithoutExt added in v0.9.12

func FileNameWithoutExt(name string) string

取不含扩展名的文件名,如“abc.txt时返回abc”

func Float64ToCny

func Float64ToCny(val float64) string

金额数字转人民币大写(百万亿级别正常,超过范围可能转数字字符串出现进位)

func Float64ToInt64

func Float64ToInt64(f float64) int64

float64 转 int64

func Float64ToString

func Float64ToString(num float64) string

float64 转 string (注:千万亿大数时可能进位,不绝对)

func Float64ToStringRoundDown

func Float64ToStringRoundDown(num float64, digit int32) string

float64 转 string,保留指定位数小数,后续小数位舍去

Float64ToStringRoundDown(1234567890123456,2) -> 1234567890123456.00 Float64ToStringRoundDown(999999999999.999,2) -> 999999999999.99

func FormatAmountRound

func FormatAmountRound(num float64, digit int32) string

float64 转 string,整数部分3位一撇,四舍五入保留或补足指定位数小数

func FormatDate

func FormatDate(date time.Time, fmt DateFormat) string

格式化日期

func FormatRound

func FormatRound(num float64, digit int32) string

float64 转 string,四舍五入保留或补足指定位数小数

func FormatSystemDate

func FormatSystemDate(fmt DateFormat) string

格式化系统日期

func GbkToUtf8

func GbkToUtf8(gbk []byte) []byte

gbk转utf8

func GenerateRSAKey

func GenerateRSAKey(keySize int) (privateKey []byte, publicKey []byte, err error)

创建秘钥

func GenerateRsaKey

func GenerateRsaKey() error

当前目录下创建2048位的秘钥文件"rsa_private.pem、rsa_public.pem"

func GenerateRsaKeyFile

func GenerateRsaKeyFile(keySize int, priKeyFile, pubKeyFile string) error

创建秘钥文件(keySize通常是1024、2048、4096)

func GetCityByIp

func GetCityByIp(ip string) string

获取ip地址信息不含ip

func GetCityIp added in v0.10.9

func GetCityIp(ip string) string

获取ip地址信息含ip

func GetEnvBool

func GetEnvBool(name string, defaultValue ...bool) bool

取环境变量

func GetEnvInt

func GetEnvInt(name string, defaultValue ...int) int

取环境变量

func GetEnvStr

func GetEnvStr(name string, defaultValue ...string) string

取环境变量

func GetFasthttpClientIp added in v0.10.7

func GetFasthttpClientIp(ctx *fasthttp.RequestCtx) string

取客户端IP

func GetFiles added in v0.19.1

func GetFiles(dir string, suffix string) ([]string, error)

取目录中指定后缀的文件列表(升序)

func GetGlcLatestVersion added in v0.10.17

func GetGlcLatestVersion(url string) string

func GetHtmlText

func GetHtmlText(strHtml string) string

对html进行分词前的文本提取(提取html中的文本并进行反转义)

func GetLocalHostName

func GetLocalHostName() string

取本机名

func GetLocalIp

func GetLocalIp() string

按顺序取本机IP地址(IPv4),优先度 eth0 ip > 192.* > 172.* > 10.* > 其他

func GetSizeInfo added in v0.9.17

func GetSizeInfo(size uint64) string

按K或M或G单位显示,保留1位小数

func GetTimeInfo added in v0.10.0

func GetTimeInfo(milliseconds int64) string

按容易理解的单位表示时间

func GetYearMonthWeek added in v0.10.14

func GetYearMonthWeek() string

返回年月周yyyymm+week

func GetYyyymmdd

func GetYyyymmdd(addDays int) string

当前日期加减天数后的yyyymmdd格式

func Hash

func Hash(str string) uint32

哈希码 uint32

func HashCode

func HashCode(bts []byte) uint32

哈希码

func HashMod

func HashMod(str string, mod uint32) uint32

字符串哈希处理后取模(余数),返回值最大不超过mod值

func HashString added in v0.9.0

func HashString(str string) string

哈希码 string

func HexToRgb

func HexToRgb(hex string) (rgb []int)

颜色转换(HEX => RGB)

rgb := HexToRgb("ccc") // rgb: [204 204 204]
rgb := HexToRgb("aabbcc") // rgb: [170 187 204]
rgb := HexToRgb("#aabbcc") // rgb: [170 187 204]
rgb := HexToRgb("0xad99c0") // rgb: [170 187 204]

func HttpDownload added in v0.7.9

func HttpDownload(url, saveAsPathFile string, headers ...string) error

下载文件,自定义headers格式为 K:V

func HttpGetJson

func HttpGetJson(url string, headers ...string) ([]byte, error)

使用标准包进行Get请求,固定Content-Type:application/json;charset=UTF-8,其他自定义headers格式为 K:V

func HttpPostForm

func HttpPostForm(url string, formMap map[string]string, headers ...string) ([]byte, error)

使用标准包进行Post请求,固定Content-Type:application/x-www-form-urlencoded,其他自定义headers格式为 K:V

func HttpPostJson

func HttpPostJson(url string, jsondata string, headers ...string) ([]byte, error)

使用标准包进行Post请求,固定Content-Type:application/json;charset=UTF-8,其他自定义headers格式为 K:V

func HttpUploadFile added in v0.7.8

func HttpUploadFile(url string, filePath string, headers ...string) ([]byte, error)

使用标准包进行Post请求,固定Content-Type:multipart/form-data,其他自定义headers格式为 K:V

func IifStr added in v0.10.7

func IifStr(condtion bool, s1 string, s2 string) string

条件参数真时返回字符串1,否则返回字符串2

func IncludesStr added in v0.10.13

func IncludesStr(slice []string, str string) bool

判断字符串是否在切片中

func IncludesStrIgnoreCase added in v0.10.13

func IncludesStrIgnoreCase(slice []string, str string) bool

判断字符串是否在切片中(忽略大小写)

func IndexOf

func IndexOf(str string, substr string) int

查找文字下标

func Info

func Info(v ...any)

打印Info级别日志,参数将忽略nil,参数含多个GlcData时仅最后一个有效

func Int64ToBytes

func Int64ToBytes(i int64) []byte

int64 转 []byte

func Int64ToString

func Int64ToString(i int64) string

int64 转 string

func IntToBytes

func IntToBytes(intNum int) []byte

int 转 []byte

func IntToExcelColumn

func IntToExcelColumn(iCol int) string

int 转 Excel列字母 (如 1 -> A,2->B )

func IntToString

func IntToString(i int) string

int 转 string

func IsAlpha

func IsAlpha(s string) bool

判断是否半角字母

func IsAlphaDigit

func IsAlphaDigit(s string) bool

判断是否半角英数(不含符号)

func IsAlpine

func IsAlpine() bool

是否alpine系统

func IsBlank

func IsBlank(str string) bool

判断是否空白

func IsDigit

func IsDigit(s string) bool

判断是否半角数字

func IsEmail

func IsEmail(str string) bool

判断是否Email地址

func IsExistDir

func IsExistDir(dir string) bool

判断文件夹是否存在

func IsExistFile

func IsExistFile(file string) bool

判断文件是否存在

func IsFullWidth

func IsFullWidth(s string) bool

判断是否全部都是全角字符

func IsHalfWidth

func IsHalfWidth(s string) bool

判断是否全部都是半角字符

func IsIPv4

func IsIPv4(str string) bool

判断是否IPv4地址

func IsIPv6

func IsIPv6(str string) bool

判断是否IPv6地址

func IsIdCard

func IsIdCard(idCard string) bool

判断是否身份证号码,若按标准校验失败也返回false

func IsIp

func IsIp(str string) bool

判断是否IP地址

func IsLinux

func IsLinux() bool

是否Linux系统

func IsMac

func IsMac() bool

是否Mac系统

func IsMobile

func IsMobile(phone string) bool

判断是否手机号

func IsNumber

func IsNumber(s string) bool

判断是否数值(123、123.456、-123.456都认为是数值)

func IsPortOpening added in v0.10.16

func IsPortOpening(port string) bool

检测本机指定端口是否打开中

func IsServerPortOpening added in v0.10.16

func IsServerPortOpening(ip string, port string) bool

检测指定服务指定端口是否打开中

func IsTypeOfArray

func IsTypeOfArray(v any) bool

判断类型是否为array

func IsTypeOfBool

func IsTypeOfBool(v any) bool

判断类型是否为bool

func IsTypeOfChan

func IsTypeOfChan(v any) bool

判断类型是否为chan

func IsTypeOfComplex128

func IsTypeOfComplex128(v any) bool

判断类型是否为complex128

func IsTypeOfComplex64

func IsTypeOfComplex64(v any) bool

判断类型是否为complex64

func IsTypeOfFloat32

func IsTypeOfFloat32(v any) bool

判断类型是否为float32

func IsTypeOfFloat64

func IsTypeOfFloat64(v any) bool

判断类型是否为float64

func IsTypeOfFunc

func IsTypeOfFunc(v any) bool

判断类型是否为func

func IsTypeOfInt

func IsTypeOfInt(v any) bool

判断类型是否为int

func IsTypeOfInt16

func IsTypeOfInt16(v any) bool

判断类型是否为int16

func IsTypeOfInt32

func IsTypeOfInt32(v any) bool

判断类型是否为int32

func IsTypeOfInt64

func IsTypeOfInt64(v any) bool

判断类型是否为int64

func IsTypeOfInt8

func IsTypeOfInt8(v any) bool

判断类型是否为int8

func IsTypeOfInterface

func IsTypeOfInterface(v any) bool

判断类型是否为interface

func IsTypeOfMap

func IsTypeOfMap(v any) bool

判断类型是否为map

func IsTypeOfPointer

func IsTypeOfPointer(v any) bool

判断类型是否为pointer

func IsTypeOfSlice

func IsTypeOfSlice(v any) bool

判断类型是否为slice

func IsTypeOfString

func IsTypeOfString(v any) bool

判断类型是否为string

func IsTypeOfStruct

func IsTypeOfStruct(v any) bool

判断类型是否为struct

func IsTypeOfUint

func IsTypeOfUint(v any) bool

判断类型是否为uint

func IsTypeOfUint16

func IsTypeOfUint16(v any) bool

判断类型是否为uint16

func IsTypeOfUint32

func IsTypeOfUint32(v any) bool

判断类型是否为uint32

func IsTypeOfUint64

func IsTypeOfUint64(v any) bool

判断类型是否为uint64

func IsTypeOfUint8

func IsTypeOfUint8(v any) bool

判断类型是否为uint8

func IsTypeOfUintptr

func IsTypeOfUintptr(v any) bool

判断类型是否为uintptr

func IsTypeOfUnsafePointer

func IsTypeOfUnsafePointer(v any) bool

判断类型是否为unsafePointer

func IsWin

func IsWin() bool

是否Windows系统

func Join

func Join(elems []string, sep string) string

字符串数组拼接为字符串

func Left

func Left(str string, length int) string

取左文字

func Len

func Len(str string) int

按文字计算字符串长度

func Md5

func Md5(bts []byte) string

MD5

func Md5File

func Md5File(pathfile string) string

文件MD5(文件读取失败时返回空串的MD5)

func MeasureCPU

func MeasureCPU() (physicalCount int, logicalCount int, usePercent float64)

检测CPU

func MeasureDisk

func MeasureDisk() (total uint64, used uint64, free uint64, usePercent float64)

检测磁盘(当前盘)

func MeasureDiskByPath added in v0.9.17

func MeasureDiskByPath(path string) (total uint64, used uint64, free uint64, usePercent float64, err error)

检测磁盘(指定路径所在磁盘)

func MeasureDiskFreeSpace added in v0.9.17

func MeasureDiskFreeSpace(path string) string

检测磁盘(指定路径所在磁盘的剩余空间)

func MeasureDisks

func MeasureDisks() []*disk.UsageStat

检测所有磁盘

func MeasureHost

func MeasureHost() (*host.InfoStat, error)

检测主机信息

func MeasureMemory

func MeasureMemory() (total uint64, used uint64, free uint64, usePercent float64)

检测内存

func MeasureSummary

func MeasureSummary() (cpuUsedPercent float64, memUsedPercent float64, diskUsedPercent float64)

检测CPU、内存、磁盘使用占比

func MeasureSwap

func MeasureSwap() (total uint64, used uint64, free uint64, usePercent float64)

检测虚拟内存

func MkdirAll added in v0.9.12

func MkdirAll(dir string) error

创建多级目录(存在时不报错)

func NormalizeVer added in v0.9.13

func NormalizeVer(ver string) string

版本号格式转换便于比较大小,格式不符时返回原版本,例 v1.2.3 => v01.002.003

func Now added in v0.9.0

func Now() string

系统时间 yyyy-MM-dd HH:mm:ss.SSS

func NowTime added in v0.10.20

func NowTime(fmt string) string

系统时间按指定的golang时间格式返回 (2006-01-02 15:04:05.000 代表 yyyy-MM-dd HH:mm:ss.SSS)

func OfMap added in v0.7.6

func OfMap(kvs ...any) map[string]any

构建Map 如:OfMap("n1",1, "n2","v2", "n3",nil)

func OnExit

func OnExit(fnExit func())

注册退出处理函数,在异步接收到SIGTERM或SIGINT信号时执行

func PadLeft

func PadLeft(str string, pad string, length int) string

左补足

func PadRight

func PadRight(str string, pad string, length int) string

右补足

func ParseDate

func ParseDate(date string, fmt DateFormat) (time.Time, error)

指定格式的字符串转日期

func PathSeparator

func PathSeparator() string

路径分隔符

func RadomUint32 added in v0.9.0

func RadomUint32() uint32

随机 uint32

func RandomHashString added in v0.9.0

func RandomHashString() string

随机哈希数字符串

func RandomInt

func RandomInt(min, max int) int

随机数 int

func RandomString

func RandomString(length int) string

随机半角英数字符串

func RandomUint32

func RandomUint32() uint32

随机数 uint32

func RandomUint64

func RandomUint64() uint64

随机数 uint64

func ReadFileBytes

func ReadFileBytes(filename string) ([]byte, error)

一次性读文件(适用于小文件)

func ReadFileString

func ReadFileString(filename string) (string, error)

一次性读文件(适用于小文件)

func ReaderToBytes added in v0.7.6

func ReaderToBytes(ioReader io.Reader) []byte

io.Reader 转 []byte

func Recover added in v0.10.18

func Recover()

捕获panic时打印异常日志避免崩溃,逻辑适用情况下,可简化用 defer Recover() 替代匿名函数的啰嗦写法

func RemoveAllFile

func RemoveAllFile(pathorfile string) error

删除文件或目录(含全部子目录文件)

func Repeat

func Repeat(str string, count int) string

重复

func Replace

func Replace(str string, old string, new string, n int) string

替换

func ReplaceAll

func ReplaceAll(str string, old string, new string) string

全部替换

func ReplaceAllSpace added in v0.7.8

func ReplaceAllSpace(str string, new string) string

全部替换连续的空白

func Retry

func Retry(callback func() error, retryTimes int, duration time.Duration) (err error)

执行回调函数,错误时重试

func Reverse

func Reverse(str string) string

反转

func RgbToHex

func RgbToHex(r int, g int, b int) string

颜色转换(RGB => HEX)

hex := RgbToHex(170, 187, 204) // hex: "#aabbcc"
func Right(str string, length int) string

取右文字

func Round

func Round(num float64, digit int32) float64

四舍五入保留指定位数(0-16)的小数

func Round1

func Round1(num float64) float64

四舍五入保留1位小数

func Round2

func Round2(num float64) float64

四舍五入保留2位小数

func RoundDown

func RoundDown(num float64, digit int32) float64

保留指定位数(0-16)的小数(后面小数舍去)

func SetGlcClient added in v0.10.1

func SetGlcClient(glcClient *GlcClient)

设定GLC日志中心客户端

func Split

func Split(str string, sep string) []string

字符串切割

func SshCmd

func SshCmd(host string, port string, user string, password string, cmd ...string) (string, error)

远程ssh执行命令

func Startwiths

func Startwiths(str string, startstr string, ignoreCase ...bool) bool

判断是否指定前缀

func String2Float64

func String2Float64(s string, defaultVal ...float64) float64

string 转 float64

func StringToBool

func StringToBool(s string, defaultVal bool) bool

string 转 bool

func StringToBytes

func StringToBytes(s string) []byte

string 转 []byte

func StringToInt

func StringToInt(s string, defaultVal ...int) int

string 转 int

func StringToInt64

func StringToInt64(s string, defaultVal ...int64) int64

string 转 int64

func StringToUint32

func StringToUint32(s string, defaultVal ...uint32) uint32

字符串(10进制无符号整数形式)转uint32,超过uint32最大值会丢失精度,转换失败时返回默认值

func SubString

func SubString(str string, start int, end int) string

按文字截取字符串

func Titlelize

func Titlelize(str string) string

首字母转大写

func ToLower

func ToLower(str string) string

转小写

func ToUpper

func ToUpper(str string) string

转大写

func Today

func Today() string

当日的yyyymmdd格式

func Trim

func Trim(str string) string

去除两边空格

func TrimPrefix

func TrimPrefix(str string, prefix string) string

去除左前缀

func ULID

func ULID() string

ULID

ULID常作为UUID的替代方案,固定26位长度(10位时间戳+16位随机数),适用于数据库ID。 主要特点:毫秒精度有序(仅同一毫秒内无序)、无特殊字符

func Uint16ToBytes

func Uint16ToBytes(num uint16) []byte

uint16 转 []byte

func Uint32ToBytes

func Uint32ToBytes(num uint32) []byte

uint32 转 []byte

func Uint32ToString

func Uint32ToString(num uint32) string

uint32 转 string

func Uint64ToBytes

func Uint64ToBytes(num uint64) []byte

uint64 转 []byte

func Uint64ToString

func Uint64ToString(i uint64) string

uint64 转 string

func UnderlineToCamel

func UnderlineToCamel(str string) string

下划线转驼峰(无下划线时不转换)

func Unique

func Unique(strs []string) []string

字符串去重

func Utf8ToGbk

func Utf8ToGbk(utf8 []byte) []byte

utf8转gbk

func WaitExit added in v0.9.1

func WaitExit(fnExit func())

同步等待到退出信号后退出

func WaitGlcFinish added in v0.10.1

func WaitGlcFinish()

停止接收新的日志并等待日志全部输出完成

func Warn

func Warn(v ...any)

打印Warn级别日志,参数将忽略nil,参数含多个GlcData时仅最后一个有效

func WriteFileBytes

func WriteFileBytes(filename string, data []byte) error

写文件(指定目录不存在时先创建,不含目录时存当前目录)

func WriteFileString

func WriteFileString(filename string, content string) error

写文件(指定目录不存在时先创建,不含目录时存当前目录)

Types

type AesEcb

type AesEcb struct {
	// contains filtered or unexported fields
}

对称加密结构体

func NewAesEcb

func NewAesEcb(secret string) *AesEcb

创建指定密码的对称加密对象

func (*AesEcb) Decode

func (a *AesEcb) Decode(src string) (string, error)

字符串解密

func (*AesEcb) DecodeBytes

func (a *AesEcb) DecodeBytes(src []byte, secret []byte) ([]byte, error)

字节数组解密

func (*AesEcb) Encode

func (a *AesEcb) Encode(src string) (string, error)

字符串加密

func (*AesEcb) EncodeBytes

func (a *AesEcb) EncodeBytes(src []byte, secret []byte) ([]byte, error)

字节数组加密

type BaiduOcr

type BaiduOcr struct {
	// contains filtered or unexported fields
}

func NewBaiduOcr

func NewBaiduOcr(apiKey string, secretKey string) *BaiduOcr

创建百度OCR对象(参数apiKey和secretKey在百度注册应用后获取)

func (*BaiduOcr) QuotaInvoice

func (b *BaiduOcr) QuotaInvoice(filebytes []byte, isPdf bool) (string, error)

定额发票识别,支持png/jpeg/jpg/bpm/pdf类型(返回JSON识别结果)

支持对各类定额发票的发票代码、发票号码、金额、发票所在地、发票金额小写、省、市7个关键字段进行结构化识别

func (*BaiduOcr) VatInvoice

func (b *BaiduOcr) VatInvoice(filebytes []byte, isPdf bool) (string, error)

增值税发票识别,支持png/jpeg/jpg/bpm/pdf类型(返回JSON识别结果)

支持对增值税普票、专票、卷票、电子发票的所有字段进行结构化识别, 包括发票基本信息、销售方及购买方信息、商品信息、价税信息等,其中四要素识别准确率超过 99.9%; 同时,支持对增值税卷票的 21 个关键字段进行识别,包括发票类型、发票代码、发票号码、机打号码、 机器编号、收款人、销售方名称、销售方纳税人识别号、开票日期、购买方名称、购买方纳税人识别号、 项目、单价、数量、金额、税额、合计金额(小写)、合计金额(大写)、校验码、省、市,四要素平均识别准确率可达95%以上。

type Cache added in v0.10.18

type Cache struct {
	// contains filtered or unexported fields
}

缓存结构

func NewCache added in v0.10.18

func NewCache(duration time.Duration, ignorecases ...bool) *Cache

新建内存缓存(有存活期,会定期清理失效缓存)

func (*Cache) Delete added in v0.10.18

func (c *Cache) Delete(key string)

删除缓存项

func (*Cache) Get added in v0.10.18

func (c *Cache) Get(key string) (any, bool)

获取缓存项

func (*Cache) Keys added in v0.20.2

func (c *Cache) Keys() []string

取缓存的所有有效期内的键

func (*Cache) Set added in v0.10.18

func (c *Cache) Set(key string, value any)

添加缓存项

func (*Cache) Values added in v0.20.2

func (c *Cache) Values() []any

取缓存的所有有效期内的值

type DateFormat

type DateFormat string

日期格式,使用常量 FMT_XXX

type EventBus

type EventBus struct {
	// contains filtered or unexported fields
}

事件总线结构体

func NewEventBus

func NewEventBus() *EventBus

创建事件总线(单例)

func (*EventBus) At

func (e *EventBus) At(event string, params ...any) *EventBus

触发事件

func (*EventBus) Del

func (e *EventBus) Del(event string) *EventBus

注销事件

func (*EventBus) Off

func (e *EventBus) Off(event string, delHandles ...EventHandler) *EventBus

注销事件

func (*EventBus) On

func (e *EventBus) On(event string, handle EventHandler) *EventBus

注册事件

func (*EventBus) Reset

func (e *EventBus) Reset() *EventBus

重置

type EventHandler

type EventHandler func(params ...any)

事件处理器

type FasthttpServer

type FasthttpServer struct {
	// contains filtered or unexported fields
}

Fasthttp服务器结构体

func NewFasthttpServer

func NewFasthttpServer(enableCors ...bool) *FasthttpServer

创建Fasthttp服务器对象

func (*FasthttpServer) BeforeRequestHandle

func (f *FasthttpServer) BeforeRequestHandle(beforeHandle GlobalBeforeRequestHandler) *FasthttpServer

注册全局前置拦截器(前置拦截器返回true时才会继续正常处理后续请求)

func (*FasthttpServer) EnableTsl added in v0.7.8

func (f *FasthttpServer) EnableTsl(certData []byte, keyData []byte) *FasthttpServer

开启TSL

func (*FasthttpServer) FinallyRequestHandle added in v0.7.11

func (f *FasthttpServer) FinallyRequestHandle(finallyHandle GlobalBeforeRequestHandler) *FasthttpServer

注册全局后置拦截器

func (*FasthttpServer) Handle

func (f *FasthttpServer) Handle(method string, path string, handle fasthttp.RequestHandler) *FasthttpServer

注册指定方法的请求控制器

func (*FasthttpServer) HandleGet

func (f *FasthttpServer) HandleGet(path string, handle fasthttp.RequestHandler) *FasthttpServer

注册GET方法的请求控制器

func (*FasthttpServer) HandleNotFound added in v0.7.10

func (f *FasthttpServer) HandleNotFound(handle fasthttp.RequestHandler) *FasthttpServer

注册NotFound的请求控制器

func (*FasthttpServer) HandlePost

func (f *FasthttpServer) HandlePost(path string, handle fasthttp.RequestHandler) *FasthttpServer

注册POST方法的请求控制器

func (*FasthttpServer) SetPort

func (f *FasthttpServer) SetPort(port string) *FasthttpServer

设定服务端口

func (*FasthttpServer) SetServer

func (f *FasthttpServer) SetServer(server *fasthttp.Server) *FasthttpServer

设定服务配置项(参数中的Handler配置项将被忽略)

func (*FasthttpServer) Shutdown added in v0.7.8

func (f *FasthttpServer) Shutdown() error

关闭服务

func (*FasthttpServer) Start

func (f *FasthttpServer) Start() error

启动服务

type Func added in v0.11.3

type Func func(args ...any) any

type GlcClient added in v0.10.1

type GlcClient struct {
	// contains filtered or unexported fields
}

日志中心客户端结构体

日志中心见 https://github.com/gotoeasy/glogcenter

func NewGlcClient added in v0.10.1

func NewGlcClient(o *GlcOptions) *GlcClient

创建日志中心客户端对象

func (*GlcClient) Debug added in v0.10.1

func (g *GlcClient) Debug(v ...any)

发送Debug级别日志到日志中心

func (*GlcClient) Error added in v0.10.1

func (g *GlcClient) Error(v ...any)

发送Error级别日志到日志中心

func (*GlcClient) Info added in v0.10.1

func (g *GlcClient) Info(v ...any)

发送Info级别日志到日志中心

func (*GlcClient) WaitFinish added in v0.10.1

func (g *GlcClient) WaitFinish()

停止接收新的日志并等待日志全部输出完成

func (*GlcClient) Warn added in v0.10.1

func (g *GlcClient) Warn(v ...any)

发送Warn级别日志到日志中心

type GlcData added in v0.10.1

type GlcData struct {
	Text       string `json:"text,omitempty"`       // 【必须】日志内容,多行时仅为首行,直接显示用,是全文检索对象
	Date       string `json:"date,omitempty"`       // 日期(格式YYYY-MM-DD HH:MM:SS.SSS)
	System     string `json:"system,omitempty"`     // 系统名
	ServerName string `json:"servername,omitempty"` // 服务器名
	ServerIp   string `json:"serverip,omitempty"`   // 服务器IP
	ClientIp   string `json:"clientip,omitempty"`   // 客户端IP
	TraceId    string `json:"traceid,omitempty"`    // 跟踪码
	LogLevel   string `json:"loglevel,omitempty"`   // 日志级别
	User       string `json:"user,omitempty"`       // 用户
}

日志接口数据结构体

func (*GlcData) ToJson added in v0.10.1

func (d *GlcData) ToJson() string

type GlcOptions

type GlcOptions struct {
	ApiUrl string // 日志中心的添加日志接口地址,默认取环境变量GLC_API_URL
	System string // 系统名(对应日志中心检索页面的分类栏),默认取环境变量GLC_SYSTEM,默认default
	ApiKey string // 日志中心的ApiKey,默认取环境变量GLC_API_KEY,默认X-GLC-AUTH:glogcenter
	Enable string // 是否开启发送到日志中心(true/false),默认取环境变量GLC_ENABLE,默认false

	EnableConsoleLog string // 是否禁止打印控制台日志(true/false),默认取环境变量GLC_ENABLE_CONSOLE_LOG,默认true

	LogLevel     string // 能输出的日志级别(DEBUG/INFO/WARN/ERROR),默认取环境变量GLC_LOG_LEVEL,默认DEBUG
	ServerName   string // 服务器名
	ServerIp     string // 服务器IP
	ClientIp     string // 客户端IP
	TraceId      string // 最终码
	PrintSrcLine bool   // 是否添加打印调用的文件行号,默认false
	// contains filtered or unexported fields
}

日志中心选项

type GlobalBeforeRequestHandler

type GlobalBeforeRequestHandler func(ctx *fasthttp.RequestCtx) bool

全局前置拦截器

type JWT

type JWT struct {
	// contains filtered or unexported fields
}

JWT结构体

func NewJWT

func NewJWT(secret string) *JWT

创建JWT对象

func (*JWT) CreateToken

func (j *JWT) CreateToken(mapKv MapString, exp time.Duration) (string, error)

创建令牌(默认HS256算法)

func (*JWT) IsExpired

func (j *JWT) IsExpired(token string) (bool, error)

判断令牌是否已过期(过期令牌不会返回error,令牌无效时将返回error)

func (*JWT) NewToken added in v0.7.5

func (j *JWT) NewToken(username string) (string, error)

创建令牌(默认HS256算法)

func (*JWT) Parse

func (j *JWT) Parse(token string) (MapString, error)

解析令牌(过期令牌不会产生错误,返回值不包含"exp"属性)

func (*JWT) RefreshToken

func (j *JWT) RefreshToken(token string, exp time.Duration) (string, error)

续签令牌(复制原令牌后创建新令牌,原令牌可以是过期令牌)

func (*JWT) Validate

func (j *JWT) Validate(token string) (MapString, error)

校验令牌(过期令牌会返回error,返回值不包含"exp"属性)

type LevelDB

type LevelDB struct {
	// contains filtered or unexported fields
}

LevelDB结构体

func NewLevelDB

func NewLevelDB(dbPath string, opt *OptionLevelDB) *LevelDB

创建LevelDB对象,参数dbPath为数据库名目录 实际每次调用都返回同一对象,opt仅首次调用时有效,opt为nil时使用默认值

func (*LevelDB) Close

func (s *LevelDB) Close()

关闭数据库

func (*LevelDB) Del

func (s *LevelDB) Del(key []byte) error

删除

func (*LevelDB) Get

func (s *LevelDB) Get(key []byte) ([]byte, error)

获取

func (*LevelDB) GetSnapshot

func (s *LevelDB) GetSnapshot() (*leveldb.Snapshot, error)

快照

func (*LevelDB) Open

func (s *LevelDB) Open() error

打开数据库

func (*LevelDB) Put

func (s *LevelDB) Put(key []byte, value []byte) error

保存

type LruCache added in v0.10.8

type LruCache struct {
	// contains filtered or unexported fields
}

func NewLruCache added in v0.10.8

func NewLruCache(maxEntries int) *LruCache

内存缓存(最近使用优先)

func (*LruCache) Add added in v0.10.8

func (c *LruCache) Add(key string, value string)

func (*LruCache) Get added in v0.10.8

func (c *LruCache) Get(key string) (string, bool)

type Map

type Map map[string]any

值都为any类型的map

func NewMap

func NewMap() Map

创建MapString对象

func (Map) Get

func (m Map) Get(key string) any

获取

func (Map) Put

func (m Map) Put(key string, value any) Map

设定

type MapString

type MapString map[string]string

值都为string类型的map

func NewMapString

func NewMapString() MapString

创建MapString对象

func (MapString) Get

func (m MapString) Get(key string) string

获取

func (MapString) Put

func (m MapString) Put(key string, value string) MapString

设定

type Minio

type Minio struct {
	// contains filtered or unexported fields
}

Minio客户端结构体

func NewMinio

func NewMinio(endpoint string, username string, password string, bucket string) *Minio

func (*Minio) Download

func (m *Minio) Download(minioObjectName string, localPathFile string) error

下载文件

func (*Minio) Upload

func (m *Minio) Upload(localPathFile string, minioObjectName string) error

上传文件

type OptionLevelDB

type OptionLevelDB struct {
	// 最大空闲时间(分钟,0~240),达空闲时间后自动关闭,小于等于0时不自动关闭,默认15分钟,最长不超4小时
	MaxIdleMinute int
}

LevelDB选项

type OsArgs added in v0.17.0

type OsArgs struct {
	String   string // 原命令
	ArgCount int    // 参数个数(含命令本身)
	LastArg  string // 最后一个参数
	// contains filtered or unexported fields
}

命令行解析结果

func NewOsArgs added in v0.21.0

func NewOsArgs(customCmds ...string) *OsArgs

命令行解析器 约定: 参数名总是以“-”作为前缀,参数值紧跟参数名 指令默认总是非“-”前缀,但也可以通过参数自定义指令,指令总是忽略大小写

func (*OsArgs) GetArg added in v0.17.0

func (o *OsArgs) GetArg(names ...string) string

取指定参数名对应的值 例如命令 test -d /abc 用GetArg("-d", "--dir")取得/abc

func (*OsArgs) GetArgByIndex added in v0.20.2

func (o *OsArgs) GetArgByIndex(index int) string

func (*OsArgs) GetArgIgnorecase added in v0.20.2

func (o *OsArgs) GetArgIgnorecase(names ...string) string

取指定参数名对应的值(忽略参数名大小写)

func (*OsArgs) GetArgs added in v0.21.0

func (o *OsArgs) GetArgs(names ...string) []string

取指定参数名对应的值切片,找不到时返回0长度的切片 例如命令 test -d /abc -d /def 用GetArgs("-d", "--dir")取得["/abc", "/def"]

func (*OsArgs) HasArg added in v0.17.0

func (o *OsArgs) HasArg(names ...string) bool

判断是否含有指定参数名

func (*OsArgs) HasArgIgnorecase added in v0.20.2

func (o *OsArgs) HasArgIgnorecase(names ...string) bool

判断是否含有指定参数名(忽略大小写)

func (*OsArgs) HasCmd added in v0.20.2

func (o *OsArgs) HasCmd(names ...string) bool

判断是否含有指定指令(忽略大小写) 例如命令 docker run ... HasCmd("Run")返回true

type Queue added in v0.9.0

type Queue struct {
	// contains filtered or unexported fields
}

队列

func NewQueue added in v0.9.0

func NewQueue() *Queue

新建队列(线程安全)

func (*Queue) Copied added in v0.9.0

func (q *Queue) Copied() []any

当前数据的切片副本

func (*Queue) IsEmpty added in v0.9.0

func (q *Queue) IsEmpty() bool

判断队列是否为空

func (*Queue) Peek added in v0.9.0

func (q *Queue) Peek() any

取元素,不出队

func (*Queue) Pop added in v0.9.0

func (q *Queue) Pop() any

取出元素

func (*Queue) Push added in v0.9.0

func (q *Queue) Push(item any)

添加元素

type SyncExecutor added in v0.11.3

type SyncExecutor struct {
	// contains filtered or unexported fields
}

func NewSyncExecutor added in v0.11.3

func NewSyncExecutor() *SyncExecutor

创建线程安全的执行器

func (*SyncExecutor) Exec added in v0.11.3

func (s *SyncExecutor) Exec(fn Func, args ...any) any

传入指定函数及其所需参数,返回该函数的执行结果,线程安全

type TokenizerSego

type TokenizerSego struct {
	// contains filtered or unexported fields
}

func NewTokenizerSego

func NewTokenizerSego(dicFiles ...string) *TokenizerSego

创建中文分词器(sego) 从文件中载入词典,参数在前的词典文件优先,未指定时将简单的单字切分

func (*TokenizerSego) CutForSearch

func (t *TokenizerSego) CutForSearch(str string) []string

按搜索引擎模式进行分词(自动去重、去标点符号、忽略大小写)

func (*TokenizerSego) CutForSearchEx

func (t *TokenizerSego) CutForSearchEx(str string, addWords []string, delWords []string) []string

按搜索引擎模式进行分词(自动去重、去标点符号、忽略大小写),可自定义添加或删除分词

func (*TokenizerSego) IngoreWords

func (t *TokenizerSego) IngoreWords(str ...string)

设定忽略词(比如分词结果不想包含无效词“的”或一些敏感词时,可以这里设定)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL