Code Monkey home page Code Monkey logo

jez's Introduction

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:提供了时间相关的一些操作,包括时间格式化、时间计算、时间区间计算、时间转换等

提供了一些文件操作的工具函数,包括文件遍历、文件创建、文件删除等

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,则读取所有行。

提供了一些常用的 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,则将该元素添加到结果切片中。

提供了一些随机数生成的函数。

import "github.com/dengrandpa/jez/randomjez"

函数


提供了一些对切片的操作,包括遍历、映射、过滤、去重、求差集、求交集等。

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,则将值附加到切片的末尾。

提供了时间相关的一些操作,包括时间格式化、时间计算、时间区间计算、时间转换等

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:将时间转换为**时区

jez's People

Contributors

djx30103 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.