jez

module
v1.0.9 Latest Latest
Warning

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

Go to latest
Published: Dec 5, 2023 License: MIT

README

jez - 一些简单且常用的包...

GitHub go.mod Go version (subdirectory of monorepo) codecov Go Report Card test Go Reference GitHub


简体中文 | 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"
函数

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"
函数

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 时间相关函数

Jump to

Keyboard shortcuts

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