README ¶
jez - 一些简单且常用的包...
简体中文 | English
特别感谢ChatGPT提供技术支持!!
安装
go get github.com/dengrandpa/jez
用法
使用时导入相对应的包名。例如:
slice工具包
import "github.com/dengrandpa/jez/slicejez"
map工具包
import "github.com/dengrandpa/jez/mapjez"
…………
目录
- Filejez:提供了一些文件操作的工具函数,包括文件遍历、文件创建、文件删除等
- Mapjez:提供了一些常用的 map 操作函数。
- Randomjez:提供了一些随机数生成的函数。
- Slicejez:提供了一些对切片的操作,包括遍历、映射、过滤、去重、求差集、求交集等。
- Timejez:提供了时间相关的一些操作,包括时间格式化、时间计算、时间区间计算、时间转换等
- Validatorjez:提供了一些常用的效验操作函数。
Filejez
提供了一些文件操作的工具函数,包括文件遍历、文件创建、文件删除等
import "github.com/dengrandpa/jez/filejez"
函数
- FilterMap:遍历当前目录,对每个文件调用 iteratee,如果返回 true,则将结果放入结果集中
- FilterMapWalk:返回遍历所有目录、子目录,对每个文件调用 iteratee,如果返回 true,则将结果放入结果集中
- IsDir:判断是否是目录
- IsEmptyDir:判断目录是否为空
- FileExists:判断文件是否存在
- DirExists:判断目录是否存在
- OsCreate:等同于 os.Create,创建文件,如果文件已存在,则忽略,使用完毕后需要关闭
- CreateFiles:创建文件,如果文件已存在,则忽略
- OverwriteFiles:创建文件,如果文件已存在,则覆盖
- CreateDirs:创建目录,包含子目录,如果目录已存在,则忽略
- CreateFilesWithDirs:创建文件,如果文件已存在,则忽略,同时创建目录,包含子目录
- OverwriteFilesWithDirs:创建文件,如果文件已存在,则覆盖,同时创建目录,包含子目录
- CreateFileWithData:创建文件并写入字符串数据
- CopyFile:拷贝文件
- FindFileWalk:遍历目录、子目录,查找文件
- FindFileWalkFilter:遍历目录、子目录,查找文件,对每个文件调用 iteratee 函数,如果返回 true,则表示找到了
- Filenames:返回目录下的文件名切片
- FilenamesFilter:遍历目录下的文件,对每个文件调用 iteratee 函数,如果返回 true,则将文件名添加到切片中
- FilenamesBy:遍历目录下的文件,对每个文件调用 iteratee 函数,将返回的字符串添加到切片中
- FilenamesWalk:返回目录下的文件名切片,包含子目录
- FilenamesWalkFilter:返回目录下的文件,包含子目录,对每个文件调用 iteratee 函数,如果返回 true,则将文件名添加到切片中
- FilenamesWalkBy:返回目录下的文件,包含子目录,对每个文件调用 iteratee 函数,将返回的字符串添加到切片中
- DeleteFiles:删除文件
- DeleteDirs:删除目录
- DeleteEmptyDirWalk:返回删除空目录,包含子目录
- DeleteWalkBy:递归删除指定目录下的文件和子目录
- Zip:将目录或文件压缩为 zip 文件,如果zip已存在,则会被覆盖。
- ZipFilter:对每个文件或目录调用 iteratee 函数,如果返回 true,则将其压缩到 zip 文件中,如果zip文件已存在,则会被覆盖。
- Unzip:解压 zip 文件到指定目录,如果目录不存在,则会被创建。
- ReadAll:将文件的所有内容读取为字符串。
- ReadLines:读取文件的前 n 行,如果 n < 0,则读取所有行。
Mapjez
提供了一些常用的 map 操作函数。
import "github.com/dengrandpa/jez/mapjez"
函数
- ForEach:遍历map,对每个元素调用 iteratee 函数。
- Filter:遍历map,对每个元素调用 iteratee 函数,如果 iteratee 返回 true,则将该元素添加到结果map中。
- Keys:遍历map,将每个key添加到结果slice中。
- KeysBy:遍历map,对每个元素调用 iteratee 函数,并返回调用后结果。
- Values:返回map中所有的value。
- ValuesBy:遍历map,对每个元素调用 iteratee 函数,并返回调用后结果。
- ValuesUnique:返回map中所有的value,结果去重。
- KeysAndValues:返回map中所有的key和value。
- KeysAndValuesFilter:遍历map,对每个元素调用 iteratee 函数,如果 iteratee 返回true,则将该元素添加到结果slice中。
- Deletes:通过key删除多个元素。
- DeleteByValues:通过value删除多个元素。
- DeleteFilter:遍历map,对每个元素调用 iteratee 函数,如果 iteratee 返回true,则删除该元素。
- ReplaceValue:替换所有value等于 old 的元素。
- MapToSliceBy:map转切片,遍历map,对每个元素调用 iteratee 函数,并返回调用后结果切片。
- MapToSliceFilter:map转切片,遍历map,对每个元素调用 iteratee 函数,如果 iteratee 返回true,则将该元素添加到结果切片中。
Randomjez
提供了一些随机数生成的函数。
import "github.com/dengrandpa/jez/randomjez"
函数
- Random:随机生成字符串
- RandomLower:随机生成小写字母字符串
- RandomUpper:随机生成大写字母字符串
- RandomNumeral:随机生成数字字符串
- RandomCaseLetters:随机生成大小写字母字符串。
- RandomLowerNumeral:随机生成小写字母和数字字符串
- RandomUpperNumeral:随机生成大写字母和数字字符串
- RandomCharset:随机生成字符串,包含数字、大小写字母
- RandomInt:随机生成整数,包含 min,不包含 max,即 [min,max)。
- RandomIntSlice:随机生成整数切片
- RandomIntSliceUnique:随机生成不重复的整数切片
- RandomBytes:随机生成字节切片
- UUIDv4:根据 RFC4122 生成 UUID v4版本
- Shuffle:打乱切片中元素的顺序。
- Sample:从切片中随机返回一个元素。
- Samples:从切片中随机返回n个元素,结果不去重。
Slicejez
提供了一些对切片的操作,包括遍历、映射、过滤、去重、求差集、求交集等。
import "github.com/dengrandpa/jez/slicejez"
函数
- ForEach:遍历切片并为每个元素调用 iteratee 函数。
- ForEachWithBreak:遍历切片并为每个元素调用 iteratee 函数,如果返回 false,则停止遍历。
- Filter:遍历切片并为每个元素调用 iteratee 函数,只返回调用结果为true的元素。
- Map:遍历切片并为每个元素调用 iteratee 函数,并返回调用后结果。
- Contain:效验切片是否包含目标元素。
- ContainAll:效验切片是否包含所有的目标元素。
- FilterMap:遍历切片并为每个元素调用 iteratee 函数,如果调用结果为true,则返回调用后元素。
- AppendIfNotDuplicate:添加元素到切片,如果元素已经存在,则不添加。
- AppendMultipleIfNotDuplicate:添加多个元素到切片,如果元素已经存在,则不添加。
- Remove:从切片中删除元素。
- RemoveFilter:遍历切片并为每个元素调用 iteratee 函数,如果调用结果为true,则删除该元素。
- Unique:去重。
- UniqueBy:遍历切片并为每个元素调用 iteratee 函数,返回唯一的元素。
- UniqueNonzero:删除重复元素及零值。
- UniqueNonzeroBy:遍历切片并为每个元素调用 iteratee 函数,返回唯一的、非零值的元素。
- Nonzero:删除零值。
- Replace:将切片中的元素 old 替换为 new ,最多替换 n 次,如果 n 为-1,则替换所有的 old 元素。
- ReplaceAll:将切片中的元素 old 替换为 new ,替换所有的 old 元素。
- Difference:差集,结果不去重。
- DifferenceUnique:差集,结果去重。
- Intersection:交集,结果元素唯一。
- MutualDifference:差异,结果不去重。
- ToMapBy:遍历切片,将切片中的元素转换为map的key和value。
- Repeat:返回包含 n 个 item 的切片。
- Equal:长度、顺序、值都相等时返回 true 。
- EqualElement:长度、值相等时返回 true ,不考虑顺序。
- FindIndex:返回第一个匹配的元素的索引,不存在则返回 -1 。
- FindIndexFilter:返回调用 iteratee 函数返回 true 的第一个元素的索引,不存在则返回 -1 。
- FindDuplicates:返回切片中所有重复的元素,结果不去重。
- FindUniqueDuplicates:返回切片中所有重复的元素,结果去重。
- Min:返回最小值
- Max:返回最大值
- Drop:返回从开头删除n个元素的切片,如果 n 大于切片的长度,则返回空切片。
- DropLast:返回从末尾删除n个元素的切片,如果 n 大于切片的长度,则返回空切片。
- Slice:返回索引从 n 到 m 的切片,但不包括 m,等同于 slice[n:m],即[min,max),但不会在溢出时panic。
- IsSorted:判断切片是否已排序。
- IsSortedBy:遍历切片并为每个元素调用 iteratee 函数,以确定它是否已排序。
- Reverse:将切片中的元素顺序反转。
- Flatten:将二维切片转换为一维切片。
- InsertAt:在切片的指定索引处插入值,如果索引大于切片的长度或小于 0,则将值附加到切片的末尾。
- NewSafeSlice:创建一个并发安全的切片。
- SafeSlice_ForEach:遍历切片并为每个元素调用 iteratee 函数。
- SafeSlice_ForEachWithBreak:遍历切片并为每个元素调用 iteratee 函数,如果返回 false,则停止遍历。
- SafeSlice_Filter:遍历切片并为每个元素调用 iteratee 函数,只返回调用结果为true的元素。
- SafeSlice_Append:添加元素到切片。
- SafeSlice_AppendIfNotDuplicate:添加元素到切片,如果元素已经存在,则不添加。
- SafeSlice_AppendMultipleIfNotDuplicate:添加多个元素到切片,如果元素已经存在,则不添加。
- SafeSlice_Load:返回切片的副本。
- SafeSlice_LoadByIndex:返回指定索引位置的元素,-1 则返回最后一个元素,如果索引超出范围,panic。
- SafeSlice_Index:返回指定元素在切片中的索引位置。
- SafeSlice_Insert:在指定索引位置插入元素。
- SafeSlice_Len:返回切片的长度。
- SafeSlice_Remove:从切片中移除元素。
- SafeSlice_RemoveByIndex:从切片中移除指定索引位置的元素。
- SafeSlice_Replace:将切片中的元素 old 替换为 new ,最多替换 n 次,如果 n 为-1,则替换所有的 old 元素。
- SafeSlice_ReplaceByIndex:将指定索引位置的元素替换为 new 。
- SafeSlice_Slice:返回索引从 n 到 m 的切片,但不包括 m,等同于 slice[n:m],即[min,max),但不会在溢出时panic。
Timejez
提供了时间相关的一些操作,包括时间格式化、时间计算、时间区间计算、时间转换等
import "github.com/dengrandpa/jez/timejez"
函数
- ParseTime:将字符串转换为时间,默认格式为 YYYYMMDDHHMMSS
- ParseTimestamp:将时间戳转换为时间
- StartOfMinute:返回时间 t 所在分钟的开始时间 yyyy-mm-dd hh:mm:00
- EndOfMinute:返回时间 t 所在分钟的结束时间 yyyy-mm-dd hh:mm:59
- StartOfHour:返回时间 t 所在小时的开始时间 yyyy-mm-dd hh:00:00
- EndOfHour:返回时间 t 所在小时的结束时间 yyyy-mm-dd hh:59:59
- StartOfDay:返回时间 t 所在天的开始时间 yyyy-mm-dd 00:00:00
- EndOfDay:返回时间 t 所在天的结束时间 yyyy-mm-dd 23:59:59
- StartOfWeekMonday:返回时间 t 所在周的开始时间,周一为第一天 yyyy-mm-dd 00:00:00
- EndOfWeekSunday:返回时间 t 所在周的结束时间,周日为最后一天 yyyy-mm-dd 23:59:59
- StartOfWeekSunday:返回时间 t 所在周的开始时间,周日为第一天 yyyy-mm-dd 00:00:00
- EndOfWeekMonday:返回时间 t 所在周的结束时间,周一为最后一天 yyyy-mm-dd 23:59:59
- StartOfMonth:返回时间 t 所在月的开始时间 yyyy-mm-01 00:00:00
- EndOfMonth:返回时间 t 所在月的结束时间 yyyy-mm-dd 23:59:59
- StartOfYear:返回时间 t 所在年的开始时间 yyyy-01-01 00:00:00
- EndOfYear:返回时间 t 所在年的结束时间 yyyy-12-31 23:59:59
- AddSecond:添加或删除秒数
- AddMinute:添加或删除分钟数
- AddHour:添加或删除小时数
- AddDay:添加或删除天数
- AddWeek:添加或删除周数
- AddMonth:添加或删除月数
- AddYear:添加或删除年数
- FormatTime:将时间格式化为字符串,默认格式为 yyyy-mm-dd hh:mm:ss
- FormatTimestamp:将时间戳格式化为字符串,默认格式为 yyyy-mm-dd hh:mm:ss
- FormatNow:返回当前时间的字符串格式,默认格式为 yyyy-mm-dd hh:mm:ss
- IsLeapYear:判断年份 year 是否为闰年
- RangeHours:返回两个时间之间的所有小时的切片,包含 start 和 end,即[start,end],如果start和end结果一样,则只返回1个
- RangeDays:返回两个时间之间的所有天的切片,包含 start 和 end,即[start,end],如果start和end结果一样,则只返回1个
- RangeMonths:返回两个时间之间的所有月的切片,包含 start 和 end,即[start,end],如果start和end结果一样,则只返回1个
- RangeYears:返回两个时间之间的所有年的切片,包含 start 和 end,即[start,end],如果start和end结果一样,则只返回1个
- NewTime:相当于 time.Date,如果不传参数则相当于 time.Now。
- SubTime:返回 t1 和 t2 之间的差值的日、小时、分钟和秒
- SubTimestamp:返回 t1 和 t2 之间的差值的日、小时、分钟和秒
- CST:返回中国时区
- ToCST:将时间转换为中国时区
Validatorjez
提供了一些常用的效验操作函数
import "github.com/dengrandpa/jez/validatorjez"
函数
- IsBase64:是否为base64
- IsBase64URL:是否为base64url
- IsChineseMainlandIDCard:是否为中国大陆身份证号码
- IsChineseMainlandPhoneNumber:是否为中国大陆手机号码, withCode为是否可包含国家代码 86 / +86
- IsFloat:是否为浮点数
- IsFloatType:是否为浮点数类型
- IsIP:是否为IP地址
- IsIPv4:是否为IPv4地址
- IsIPv6:是否为IPv6地址
- IsIn:是否在指定列表中
- IsInt:是否为整数
- IsIntType:是否为整数类型
- IsJSON:是否为json
- IsLongitude:是否为经度
- IsLatitude:是否为纬度
- IsNum:是否为数字(包含浮点数)
- IsNumType:是否为数字类型(包含浮点数)
- IsPort:是否为端口号
- IsPrefixOrSuffix:是否以指定字符串开头或结尾
- IsRange:数值范围
- IsRegex:是否为正则表达式
- IsRegexMatch:是否匹配正则表达式
- RuneLength:字符长度
- StringLength:字符串长度
Directories ¶
Path | Synopsis |
---|---|
Package filejez 文件相关函数
|
Package filejez 文件相关函数 |
Package mapjez map相关函数
|
Package mapjez map相关函数 |
Package randomjez 随机数生成相关函数
|
Package randomjez 随机数生成相关函数 |
Package slicejez slice相关函数
|
Package slicejez slice相关函数 |
Package timejez 时间相关函数
|
Package timejez 时间相关函数 |
Click to show internal directories.
Click to hide internal directories.