Documentation ¶
Index ¶
- Variables
- func AESCBCDecrypt(cipherData, key, iv []byte) ([]byte, error)
- func AESCBCEncrypt(rawData, key, iv []byte) ([]byte, error)
- func AESECBDecrypt(buf, key []byte) ([]byte, error)
- func AESECBEncrypt(data, key []byte) ([]byte, error)
- func AddFloat64(a float64, b float64) float64
- func AfterPage(page int64, pageCount int64) int64
- func AsyncFunc(fn func())
- func AsyncFuncGroup(fns ...func())
- func AsyncFuncGroupPanic(errFn func(err any), fns ...func())
- func AsyncFuncPanic(fn func(), errFn func(err any))
- func Base59Decoding(strByte []byte, key ...string) []byte
- func Base59Encoding(strByte []byte, key ...string) string
- func Base64Decode(str string) []byte
- func Base64Encode(buf []byte) string
- func BcryptCheck(password, hash string) bool
- func BcryptHash(password string) string
- func BeforePage(page int64) int64
- func BeijingTimeLocation() *time.Location
- func BigIntAdd(num1 string, num2 string) string
- func BigIntCmp(num1 string, num2 string) int
- func BigIntDiv(num1 string, num2 string) string
- func BigIntMod(num1 string, num2 string) string
- func BigIntMul(num1 string, num2 string) string
- func BigIntReduce(num1 string, num2 string) string
- func CalculateFileMD5(filePath string) (string, error)
- func Camel2Case(str string) string
- func CaptchaAudioGet(audioStr string) map[string]string
- func CaptchaChineseGet(width, height int, source string) map[string]string
- func CaptchaGet(width, height int) map[string]string
- func CaptchaMathGet(width, height int) map[string]string
- func CaptchaStringGet(width, height int) map[string]string
- func CaptchaVerify(id, code string) bool
- func Case2Camel(str string) string
- func CheckSign(secret string, linkSignTimeout int64, ts int64, sign string) bool
- func Code2Id(code string) (int64, error)
- func ConvertAmPmHourTo24HourFormat(timeStr string, layout24Hour string) (string, error)
- func ConvertToGMTTime(gmtTime string) (time.Time, error)
- func CopyProperties[T any](target interface{}) T
- func CurrentHourStartAndEnd() (int, int64, int64)
- func Date2Ts(date string) int64
- func Date2TsLocal(date string, location *time.Location) int64
- func DateTime(format string) string
- func DateTime2Ts(dateTime string) int64
- func DateTime2TsLocal(dateTime string, location *time.Location) int64
- func DateTime2TsLocalFormat(dateTime string, location *time.Location, format string) int64
- func DateTimeLocal(format string, timeOffsetSec int) string
- func DatesForRangeTs(startTimestamp int64, endTimestamp int64, format string) []string
- func DivFloat64(a float64, b float64) float64
- func FillMissingNumbers(nums []int64, max int64) []int64
- func GBK2UTF8(s string) string
- func GBKToUTF8(text string) (string, error)
- func GenId() int64
- func GenIdInit(adapter iGenId)
- func GenIdStr() string
- func GenValidateCode(width int) string
- func GenerateAESKey() (string, error)
- func GenerateAESKeyAndIV() (string, string, error)
- func GenericSort[T any](arr []T, less func(T, T) bool)
- func GetChinaTomorrowAMSeconds(isBeijing bool) int64
- func GetDateInterval(t1, t2 time.Time) int
- func GetFieldValue(config interface{}, fieldName string) (interface{}, error)
- func GetLocalTomorrowAMSeconds() int64
- func GetNowDateForLocation(isBeijing bool) string
- func GetPageCount(total int64, pageSize int64) (totalPages int64)
- func GetRuntimeStack() string
- func GetTimeNow() time.Time
- func GetTodayZero() time.Time
- func GetZero(targetTime time.Time) time.Time
- func HMacMd5(buf, key []byte) string
- func HMacSha1(buf, key []byte) string
- func HMacSha256(buf, key []byte) string
- func HideEmail(email string) string
- func Id2Code(id int64) string
- func IfFloat32(isTrue bool, a, b float32) float32
- func IfFloat64(isTrue bool, a, b float64) float64
- func IfInt(isTrue bool, a, b int) int
- func IfNot[T any](isTrue bool, a, b T) T
- func IfString(isTrue bool, a, b string) string
- func InitCaptcha(captcha *gocaptcha.GoCaptcha)
- func InsertionSort[T any](arr []T, less func(T, T) bool)
- func IsContextDone(ctx context.Context) bool
- func IsEmail(email string) bool
- func IsEqualArray[T comparable](arr1 []T, arr2 []T) bool
- func IsInArray[T comparable](arr []T, target T) bool
- func IsInArrayX[T any](arr []T, exists func(target T) bool) bool
- func IsInArrayXX[T any](arr []*T, exists func(target *T) bool) bool
- func IsInt(str string) bool
- func IsNumeric(str string) bool
- func IsSameDay(t1, t2 time.Time) bool
- func IsValidDate(str string) bool
- func IsValidDateTime(str string) bool
- func LastHourStartAndEnd(isBeijing bool) (int, int64, int64)
- func MD5(buf []byte) string
- func MaxInt(a, b int) int
- func MaxInt64(a, b int64) int64
- func Md5(buf []byte) string
- func MeasureExecutionTime(fn func()) time.Duration
- func MinInt(a, b int) int
- func MinInt64(a, b int64) int64
- func MulFloat64(a float64, b float64) float64
- func NewIdCode(key string) *idCode
- func NextDate(d int) string
- func NextDateLocal(d int, timeOffsetSec int) string
- func NonceStr() string
- func NonceStr8() string
- func Now() string
- func NowLocal(timeOffsetSec int) string
- func PadStart(str, pad string, length int) string
- func ParseTime(timeStr string) (datetime time.Time)
- func ParseTimeString(timeStr string) (datetime time.Time)
- func PinYin(origin string) (string, error)
- func Recovery(errFn func(err any))
- func ReverseArray(arr []*interface{})
- func SHA1(buf []byte) string
- func SHA256(buf, key []byte) string
- func SHAWithRSA(key, data []byte) (string, error)
- func SessionId() string
- func SinceDays(dateString string) (int64, error)
- func Split(s string, rs ...rune) []string
- func SplitArray(arr []interface{}, size int) (list [][]interface{})
- func SplitInt64Array(arr []int64, size int) (list [][]int64)
- func SplitIntArray(arr []int, size int) (list [][]int)
- func SplitStringArray(arr []string, size int) (list [][]string)
- func SubFloat64(a float64, b float64) float64
- func Sum(list []int) int
- func TimeRangeDates(startDate string, endDate string) []string
- func TimeRangeDay(stTime int64, endTIme int64) int
- func ToDate(ts int64, isBeijing bool) string
- func ToDateTime(ts int64, isBeijing bool) string
- func Today() string
- func TodayLocal(timeOffsetSec int) string
- func Ts2Date(ts int64) string
- func Ts2DateLocal(ts int64, timeOffsetSec int) string
- func Ts2DateTime(ts int64) string
- func Ts2DateTimeLocal(ts int64, timeOffsetSec int) string
- func Ts2DateTimeLocalFormat(ts int64, timeOffsetSec int, format string) string
- func Ts2Time(t int64) time.Time
- func UTF82GBK(s string) string
- func UTF8ToGBK(text string) (string, error)
- func UUID() string
- func UrlDecode(str string) string
- func UrlEncode(str string) string
- func ValidPassword(str string) (msg string, matched bool)
- func ValidPasswordV2(str string) (msg string, matched bool)
- type Byte
- type ErrorGroup
- type M
- type Mode
- type Params
- func (p Params) Array() (ps []Params)
- func (p Params) ArrayData() []interface{}
- func (p Params) Bool() bool
- func (p Params) Data() interface{}
- func (p Params) Float32() float32
- func (p Params) Float64() float64
- func (p Params) Get(key string) Params
- func (p Params) Int() int
- func (p Params) Int32() int32
- func (p Params) Int64() int64
- func (p Params) JSON() []byte
- func (p Params) Map() (rst map[string]Params)
- func (p Params) MapData() map[string]interface{}
- func (p Params) Set(key string, val interface{}) Params
- func (p Params) String() string
- type SafeSlice
- type SnowFlakeId
- type StringMap
Constants ¶
This section is empty.
Variables ¶
var ( TimeLayout string = "2006-01-02 15:04:05" DateLayout = "20060102" TimeFormat = map[string]string{ "Y-m-d H:i:s": "2006-01-02 15:04:05", "Y-m-d": "2006-01-02", "Ymd": "20060102", "H:i:s": "15:04:05", "Y": "2006", "m": "01", "d": "02", } )
这个包即将废弃,改用 gotime 包
var (
ErrInitialize = errors.New("not yet initialized")
)
Functions ¶
func AESCBCDecrypt ¶
func AESCBCEncrypt ¶
func AESECBDecrypt ¶
func AESECBEncrypt ¶
func AddFloat64 ¶ added in v1.1.2
func AsyncFuncGroupPanic ¶ added in v1.1.7
func AsyncFuncGroupPanic(errFn func(err any), fns ...func())
异步并发执行(安全)errFn = nil 时自动Recovery 不会Panic
建议使用NewErrorGroup 替代
func AsyncFuncPanic ¶ added in v1.1.7
func AsyncFuncPanic(fn func(), errFn func(err any))
异步执行(安全)errFn = nil 时自动Recovery 不会Panic
func Base59Decoding ¶
func Base59Encoding ¶
如果遇到特殊字符,需要用 url.PathEscape(str) 解决
func Base64Decode ¶
func Base64Encode ¶
func BcryptCheck ¶ added in v1.2.64
BcryptCheck 对比明文密码和数据库的哈希值
func BcryptHash ¶ added in v1.2.64
BcryptHash 使用 bcrypt 对密码进行加密
func BeforePage ¶ added in v1.2.101
func BeijingTimeLocation ¶ added in v1.2.129
func CalculateFileMD5 ¶ added in v1.2.34
计算文件md5(支持超大文件)
func CaptchaAudioGet ¶ added in v1.2.27
func CaptchaChineseGet ¶ added in v1.2.27
func CaptchaMathGet ¶ added in v1.2.27
func CaptchaStringGet ¶ added in v1.2.27
func ConvertAmPmHourTo24HourFormat ¶ added in v1.2.127
convertTo24HourFormat 将时间字符串转换为 0-23 小时制 timeStr: 时间字符串,例如 "3:04 PM" 3:04 PM-->15:04 ,必须是这两个格式之一
func ConvertToGMTTime ¶ added in v1.2.136
格式为: 2021-08-06T07:00:00+0000 To time.Time
func CopyProperties ¶ added in v1.2.88
func CopyProperties[T any](target interface{}) T
使用反射复制A结构到B结构,前提是两个结构体字段数量和类型完全相同 如:使用反射将 VO 转换为 DTO 反射(reflect)虽爽,但很贵,性能会有损失
func CurrentHourStartAndEnd ¶ added in v1.0.14
func DateTime2Ts ¶
func DateTime2TsLocal ¶ added in v1.2.93
func DateTime2TsLocalFormat ¶ added in v1.2.93
func DateTimeLocal ¶ added in v1.2.93
当前时间通用 格式用法
func DatesForRangeTs ¶ added in v1.2.154
func DivFloat64 ¶ added in v1.1.2
func FillMissingNumbers ¶ added in v1.2.98
把缺失的数字填充到数组中
func GenValidateCode ¶ added in v1.0.14
func GenerateAESKeyAndIV ¶ added in v1.2.52
生成 AES 密钥和 IV
func GenericSort ¶ added in v1.2.96
定义一个泛型排序函数
func GetChinaTomorrowAMSeconds ¶ added in v1.0.14
func GetDateInterval ¶ added in v1.0.14
func GetFieldValue ¶ added in v1.2.25
通过反射获取结构体字段的值
func GetLocalTomorrowAMSeconds ¶ added in v1.0.14
func GetLocalTomorrowAMSeconds() int64
func GetNowDateForLocation ¶ added in v1.0.14
func GetPageCount ¶ added in v1.2.100
func GetRuntimeStack ¶ added in v1.2.89
func GetRuntimeStack() string
func GetTimeNow ¶ added in v1.0.14
GetTimeNow 获取当前时间GetTimeNow(),用于测试时的时间修改
func GetTodayZero ¶ added in v1.0.14
func HMacSha256 ¶
func InitCaptcha ¶ added in v1.2.27
func InsertionSort ¶ added in v1.2.96
插入排序函数,使用泛型指定元素类型
func IsContextDone ¶ added in v1.2.46
func IsEqualArray ¶ added in v1.2.166
func IsEqualArray[T comparable](arr1 []T, arr2 []T) bool
两个数组是否相等,判断长度一样的两个数组 元素是否完全相同,顺序可以不同
func IsInArrayX ¶ added in v1.2.125
条件满足任意元素 exists func(target T) bool 返回true时返回true
适合判断数组中存储复杂对象,判断条件定义情况
用以下代替
slices.ContainsFunc(arr, func(t T) bool { })
func IsInArrayXX ¶ added in v1.2.125
条件满足任意元素 exists func(target *T) bool 返回true时返回true
适合判断数组中存储复杂对象,判断条件定义情况,数组元素是指针类型时用
用以下代替
slices.ContainsFunc(arr, func(t T) bool { })
func IsValidDate ¶ added in v1.2.139
func IsValidDateTime ¶ added in v1.2.138
判断是不是 2024-11-22 4 格式的时间串
func LastHourStartAndEnd ¶ added in v1.0.14
LastHourStartAndEnd 上一个小时的开始和结束时间戳
func MeasureExecutionTime ¶ added in v1.2.34
返回函数执行时间
func MulFloat64 ¶ added in v1.1.2
func ParseTimeString ¶ added in v1.0.14
func ReverseArray ¶ added in v1.0.14
func ReverseArray(arr []*interface{})
func SHAWithRSA ¶
func SplitArray ¶
func SplitArray(arr []interface{}, size int) (list [][]interface{})
func SplitInt64Array ¶
func SplitIntArray ¶
func SplitStringArray ¶
func SubFloat64 ¶ added in v1.1.2
func TimeRangeDates ¶ added in v1.0.14
func ToDateTime ¶ added in v1.0.14
func Ts2DateLocal ¶ added in v1.2.92
本地化日期 给定时间戳(以秒为单位)
func Ts2DateTime ¶
func Ts2DateTimeLocal ¶ added in v1.2.92
本地化日期时间 给定时间戳(以秒为单位)
func Ts2DateTimeLocalFormat ¶ added in v1.2.93
将时间对象转换为特定时区的时间
func ValidPassword ¶
func ValidPasswordV2 ¶
Types ¶
type ErrorGroup ¶ added in v1.2.90
type ErrorGroup struct {
// contains filtered or unexported fields
}
func NewErrorGroup ¶ added in v1.2.90
func NewErrorGroup(context context.Context, maxWorkers int) ErrorGroup
当并发执行过程中有错误时,会自动取消其他所有任务,通过CancelContext 取消来实现 (最大并发数为 maxWorkers,超过阻塞等待 )
func (*ErrorGroup) IsContextDone ¶ added in v1.2.90
func (e *ErrorGroup) IsContextDone() bool
func (*ErrorGroup) Submit ¶ added in v1.2.90
func (e *ErrorGroup) Submit(fn ...func() error)
func (*ErrorGroup) TryGo ¶ added in v1.2.91
func (e *ErrorGroup) TryGo(fn func() error) bool
func (*ErrorGroup) Wait ¶ added in v1.2.90
func (e *ErrorGroup) Wait() error
type Params ¶
type Params struct {
// contains filtered or unexported fields
}
func Json2Params ¶ added in v1.2.158
type SafeSlice ¶ added in v1.2.5
type SafeSlice[T comparable] struct { // contains filtered or unexported fields }
读写锁 + 顺序获取(循环)
如: s := []string{"s1", "s2", "s3"}, 无论并发怎么读取,顺序为:s1,s2,s3,s1,s2,s3,s1,s2,s...
func NewSafeSlice ¶ added in v1.2.5
func NewSafeSlice[T comparable]() *SafeSlice[T]
type SnowFlakeId ¶
type SnowFlakeId struct { DataCenterId int // 机房或者数据中心ID 0 - 31 WorkerId int // 机器或者容器ID 0 - 31 // contains filtered or unexported fields }
Snowflake,雪花算法是由Twitter开源的分布式ID生成算法,以划分命名空间的方式将 64-bit位分割成多个部分, 每个部分代表不同的含义。这种就是将64位划分为不同的段,每段代表不同的涵义,基本就是时间戳、机器ID和序列数。 为什么如此重要?因为它提供了一种ID生成及生成的思路,当然这种方案就是需要考虑时钟回拨的问题以及做一些 buffer的缓冲设计提高性能。 雪花算法
func (*SnowFlakeId) GenId ¶
func (sf *SnowFlakeId) GenId() int64