diff --git a/README.md b/README.md index ceb0808..b5e35ef 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ [![test](https://github.com/duke-git/lancet/actions/workflows/codecov.yml/badge.svg?branch=main&event=push)](https://github.com/duke-git/lancet/actions/workflows/codecov.yml) [![codecov](https://codecov.io/gh/duke-git/lancet/branch/main/graph/badge.svg?token=FC48T1F078)](https://codecov.io/gh/duke-git/lancet) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/duke-git/lancet/blob/main/LICENSE) +
@@ -22,20 +23,23 @@ English | [简体中文](./README_zh-CN.md) ## Feature -- 👏 Comprehensive, efficient and reusable. -- 💪 300+ go util functions, support string, slice, datetime, net, crypt... -- 💅 Only depend on the go standard library. -- 🌍 Unit test for every exported function. +- 👏 Comprehensive, efficient and reusable. +- 💪 300+ go util functions, support string, slice, datetime, net, crypt... +- 💅 Only depend on the go standard library. +- 🌍 Unit test for every exported function. ## Installation + ### Note: 1. For users who use go1.18 and above, it is recommended to install lancet v2.x.x. Cause v2.x.x rewrite all functions with generics of go1.18. + ```go go get github.com/duke-git/lancet/v2 // will install latest version of v2.x.x ``` 2. For users who use version below go1.18, you should install v1.x.x. now latest v1 is v1.3.2. + ```go go get github.com/duke-git/lancet@v1.3.2 // below go1.18, install latest version of v1.x.x ``` @@ -68,83 +72,90 @@ func main() { ``` ## API Documentation + ## [lancet API doc](https://uvdream.github.io/lancet-docs/) Thanks [@UvDream](https://github.com/UvDream) for contributing. + ### 1. Algorithm package implements some basic algorithm. eg. sort, search. ```go import "github.com/duke-git/lancet/v2/algorithm" ``` + #### Function list: -- [BubbleSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#BubbleSort) -- [CountSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#CountSort) -- [HeapSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#HeapSort) -- [InsertionSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#InsertionSort) -- [MergeSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#MergeSort) -- [QuickSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#QuickSort) -- [SelectionSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#SelectionSort) -- [ShellSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#ShellSort) -- [BinarySearch](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#BinarySearch) -- [BinaryIterativeSearch](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#BinaryIterativeSearch) -- [LinearSearch](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#LinearSearch) -- [LRUCache](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#LRUCache) - +- [BubbleSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#BubbleSort) +- [CountSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#CountSort) +- [HeapSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#HeapSort) +- [InsertionSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#InsertionSort) +- [MergeSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#MergeSort) +- [QuickSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#QuickSort) +- [SelectionSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#SelectionSort) +- [ShellSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#ShellSort) +- [BinarySearch](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#BinarySearch) +- [BinaryIterativeSearch](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#BinaryIterativeSearch) +- [LinearSearch](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#LinearSearch) +- [LRUCache](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#LRUCache) ### 2. Concurrency package contain some functions to support concurrent programming. eg, goroutine, channel, async. ```go import "github.com/duke-git/lancet/v2/concurrency" ``` -#### Function list: -- [NewChannel](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#NewChannel) -- [Bridge](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#Bridge) -- [FanIn](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#FanIn) -- [Generate](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#Generate) -- [Or](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#Or) -- [OrDone](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#OrDone) -- [Repeat](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#Repeat) -- [RepeatFn](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#RepeatFn) -- [Take](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#Take) -- [Tee](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#Tee) +#### Function list: + +- [NewChannel](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#NewChannel) +- [Bridge](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#Bridge) +- [FanIn](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#FanIn) +- [Generate](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#Generate) +- [Or](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#Or) +- [OrDone](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#OrDone) +- [Repeat](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#Repeat) +- [RepeatFn](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#RepeatFn) +- [Take](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#Take) +- [Tee](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#Tee) ### 3. Condition package contains some functions for conditional judgment. eg. And, Or, TernaryOperator... ```go import "github.com/duke-git/lancet/v2/condition" ``` + #### Function list: -- [Bool](https://github.com/duke-git/lancet/blob/main/docs/condition.md#Bool) -- [And](https://github.com/duke-git/lancet/blob/main/docs/condition.md#And) -- [Or](https://github.com/duke-git/lancet/blob/main/docs/condition.md#Or) -- [Xor](https://github.com/duke-git/lancet/blob/main/docs/condition.md#Xor) -- [Nor](https://github.com/duke-git/lancet/blob/main/docs/condition.md#Nor) -- [Nand](https://github.com/duke-git/lancet/blob/main/docs/condition.md#Nand) -- [TernaryOperator](https://github.com/duke-git/lancet/blob/main/docs/condition.md#TernaryOperator) - + +- [Bool](https://github.com/duke-git/lancet/blob/main/docs/condition.md#Bool) +- [And](https://github.com/duke-git/lancet/blob/main/docs/condition.md#And) +- [Or](https://github.com/duke-git/lancet/blob/main/docs/condition.md#Or) +- [Xor](https://github.com/duke-git/lancet/blob/main/docs/condition.md#Xor) +- [Nor](https://github.com/duke-git/lancet/blob/main/docs/condition.md#Nor) +- [Nand](https://github.com/duke-git/lancet/blob/main/docs/condition.md#Nand) +- [TernaryOperator](https://github.com/duke-git/lancet/blob/main/docs/condition.md#TernaryOperator) + ### 4. Convertor package contains some functions for data convertion. ```go import "github.com/duke-git/lancet/v2/convertor" ``` + #### Function list: -- [ColorHexToRGB](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ColorHexToRGB) -- [ColorRGBToHex](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ColorRGBToHex) -- [ToBool](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToBool) -- [ToBytes](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToBytes) -- [ToChar](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToChar) -- [ToChannel](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToChannel) -- [ToFloat](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToFloat) -- [ToInt](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToInt) -- [ToJson](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToJson) -- [ToMap](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToMap) -- [ToPointer](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToPointer) -- [ToString](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToString) -- [StructToMap](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#StructToMap) -- [MapToSlice](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#MapToSlice) -- [EncodeByte](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#EncodeByte) -- [DecodeByte](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#DecodeByte) - + +- [ColorHexToRGB](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ColorHexToRGB) +- [ColorRGBToHex](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ColorRGBToHex) +- [ToBool](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToBool) +- [ToBytes](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToBytes) +- [ToChar](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToChar) +- [ToChannel](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToChannel) +- [ToFloat](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToFloat) +- [ToInt](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToInt) +- [ToJson](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToJson) +- [ToMap](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToMap) +- [ToPointer](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToPointer) +- [ToString](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#ToString) +- [StructToMap](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#StructToMap) +- [MapToSlice](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#MapToSlice) +- [EncodeByte](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#EncodeByte) +- [DecodeByte](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#DecodeByte) + ### 5. Cryptor package is for data encryption and decryption. ```go @@ -152,82 +163,81 @@ import "github.com/duke-git/lancet/v2/cryptor" ``` #### Function list: -- [AesEcbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesEcbEncrypt) -- [AesEcbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesEcbDecrypt) -- [AesCbcEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesCbcEncrypt) -- [AesCbcDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesCbcDecrypt) -- [AesCtrCrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesCtrCrypt) -- [AesCfbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesCfbEncrypt) -- [AesCfbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesCfbDecrypt) -- [AesOfbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesOfbEncrypt) -- [AesOfbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesOfbDecrypt) -- [Base64StdEncode](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#Base64StdEncode) -- [Base64StdDecode](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#Base64StdDecode) -- [DesEcbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesEcbEncrypt) -- [DesEcbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesEcbDecrypt) -- [DesCbcEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesCbcEncrypt) -- [DesCbcDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesCbcDecrypt) -- [DesCtrCrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesCtrCrypt) -- [DesCfbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesCfbEncrypt) -- [DesCfbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesCfbDecrypt) -- [DesOfbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesOfbEncrypt) -- [DesOfbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesOfbDecrypt) -- [HmacMd5](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#HmacMd5) -- [HmacSha1](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#HmacSha1) -- [HmacSha256](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#HmacSha256) -- [HmacSha512](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#HmacSha512) -- [Md5String](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#Md5String) -- [Md5File](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#Md5File) -- [Sha1](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#Sha1) -- [Sha256](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#Sha256) -- [Sha512](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#Sha512) -- [GenerateRsaKey](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#GenerateRsaKey) -- [RsaEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#RsaEncrypt) -- [RsaDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#RsaDecrypt) + +- [AesEcbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesEcbEncrypt) +- [AesEcbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesEcbDecrypt) +- [AesCbcEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesCbcEncrypt) +- [AesCbcDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesCbcDecrypt) +- [AesCtrCrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesCtrCrypt) +- [AesCfbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesCfbEncrypt) +- [AesCfbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesCfbDecrypt) +- [AesOfbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesOfbEncrypt) +- [AesOfbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#AesOfbDecrypt) +- [Base64StdEncode](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#Base64StdEncode) +- [Base64StdDecode](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#Base64StdDecode) +- [DesEcbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesEcbEncrypt) +- [DesEcbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesEcbDecrypt) +- [DesCbcEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesCbcEncrypt) +- [DesCbcDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesCbcDecrypt) +- [DesCtrCrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesCtrCrypt) +- [DesCfbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesCfbEncrypt) +- [DesCfbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesCfbDecrypt) +- [DesOfbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesOfbEncrypt) +- [DesOfbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#DesOfbDecrypt) +- [HmacMd5](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#HmacMd5) +- [HmacSha1](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#HmacSha1) +- [HmacSha256](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#HmacSha256) +- [HmacSha512](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#HmacSha512) +- [Md5String](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#Md5String) +- [Md5File](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#Md5File) +- [Sha1](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#Sha1) +- [Sha256](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#Sha256) +- [Sha512](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#Sha512) +- [GenerateRsaKey](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#GenerateRsaKey) +- [RsaEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#RsaEncrypt) +- [RsaDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#RsaDecrypt) ### 6. Datetime package supports date and time format and compare. - ```go import "github.com/duke-git/lancet/v2/datetime" ``` + #### Function list: -- [AddDay](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#AddDay) -- [AddHour](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#AddHour) -- [AddMinute](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#AddMinute) -- [BeginOfMinute](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfMinute) -- [BeginOfHour](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfHour) -- [BeginOfDay](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfDay) -- [BeginOfWeek](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfWeek) -- [BeginOfMonth](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfMonth) -- [BeginOfYear](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfYear) -- [EndOfMinute](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfMinute) -- [EndOfHour](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfHour) -- [EndOfDay](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfDay) -- [EndOfWeek](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfWeek) -- [EndOfMonth](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfMonth) -- [EndOfYear](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfYear) -- [GetNowDate](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#GetNowDate) -- [GetNowTime](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#GetNowTime) -- [GetNowDateTime](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#GetNowDateTime) -- [GetZeroHourTimestamp](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#GetZeroHourTimestamp) -- [GetNightTimestamp](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#GetNightTimestamp) -- [FormatTimeToStr](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#FormatTimeToStr) -- [FormatStrToTime](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#FormatStrToTime) -- [NewUnix](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#NewUnix) -- [NewUnixNow](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#NewUnixNow) -- [NewFormat](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#NewFormat) -- [NewISO8601](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#NewISO8601) -- [ToUnix](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#ToUnix) -- [ToFormat](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#ToFormat) -- [ToFormatForTpl](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#ToFormatForTpl) -- [ToIso8601](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#ToIso8601) - +- [AddDay](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#AddDay) +- [AddHour](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#AddHour) +- [AddMinute](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#AddMinute) +- [BeginOfMinute](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfMinute) +- [BeginOfHour](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfHour) +- [BeginOfDay](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfDay) +- [BeginOfWeek](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfWeek) +- [BeginOfMonth](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfMonth) +- [BeginOfYear](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfYear) +- [EndOfMinute](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfMinute) +- [EndOfHour](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfHour) +- [EndOfDay](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfDay) +- [EndOfWeek](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfWeek) +- [EndOfMonth](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfMonth) +- [EndOfYear](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfYear) +- [GetNowDate](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#GetNowDate) +- [GetNowTime](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#GetNowTime) +- [GetNowDateTime](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#GetNowDateTime) +- [GetZeroHourTimestamp](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#GetZeroHourTimestamp) +- [GetNightTimestamp](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#GetNightTimestamp) +- [FormatTimeToStr](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#FormatTimeToStr) +- [FormatStrToTime](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#FormatStrToTime) +- [NewUnix](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#NewUnix) +- [NewUnixNow](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#NewUnixNow) +- [NewFormat](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#NewFormat) +- [NewISO8601](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#NewISO8601) +- [ToUnix](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#ToUnix) +- [ToFormat](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#ToFormat) +- [ToFormatForTpl](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#ToFormatForTpl) +- [ToIso8601](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#ToIso8601) ### 7. Datastructure package constains some common data structure. eg. list, linklist, stack, queue, set, tree, graph. - ```go import list "github.com/duke-git/lancet/v2/datastructure/list" import link "github.com/duke-git/lancet/v2/datastructure/link" @@ -238,16 +248,17 @@ import tree "github.com/duke-git/lancet/v2/datastructure/tree" import heap "github.com/duke-git/lancet/v2/datastructure/heap" import hashmap "github.com/duke-git/lancet/v2/datastructure/hashmap" ``` -#### Function list: -- [List](https://github.com/duke-git/lancet/blob/main/docs/datastructure/list.md) -- [Linklist](https://github.com/duke-git/lancet/blob/main/docs/datastructure/linklist.md) -- [Stack](https://github.com/duke-git/lancet/blob/main/docs/datastructure/stack.md) -- [Queue](https://github.com/duke-git/lancet/blob/main/docs/datastructure/queue.md) -- [Set](https://github.com/duke-git/lancet/blob/main/docs/datastructure/set.md) -- [Tree](https://github.com/duke-git/lancet/blob/main/docs/datastructure/tree.md) -- [Heap](https://github.com/duke-git/lancet/blob/main/docs/datastructure/heap.md) -- [HashMap](https://github.com/duke-git/lancet/blob/main/docs/datastructure/hashmap.md) +#### Function list: + +- [List](https://github.com/duke-git/lancet/blob/main/docs/datastructure/list.md) +- [Linklist](https://github.com/duke-git/lancet/blob/main/docs/datastructure/linklist.md) +- [Stack](https://github.com/duke-git/lancet/blob/main/docs/datastructure/stack.md) +- [Queue](https://github.com/duke-git/lancet/blob/main/docs/datastructure/queue.md) +- [Set](https://github.com/duke-git/lancet/blob/main/docs/datastructure/set.md) +- [Tree](https://github.com/duke-git/lancet/blob/main/docs/datastructure/tree.md) +- [Heap](https://github.com/duke-git/lancet/blob/main/docs/datastructure/heap.md) +- [HashMap](https://github.com/duke-git/lancet/blob/main/docs/datastructure/hashmap.md) ### 8. Fileutil package implements some basic functions for file operations. @@ -257,29 +268,31 @@ import "github.com/duke-git/lancet/v2/fileutil" #### Function list: -- [ClearFile](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#ClearFile) -- [CreateFile](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#CreateFile) -- [CreateDir](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#CreateDir) -- [CopyFile](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#CopyFile) -- [FileMode](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#FileMode) -- [MiMeType](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#MiMeType) -- [IsExist](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#IsExist) -- [IsLink](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#IsLink) -- [IsDir](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#IsDir) -- [ListFileNames](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#ListFileNames) -- [RemoveFile](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#RemoveFile) -- [ReadFileToString](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#ReadFileToString) -- [ReadFileByLine](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#ReadFileByLine) -- [Zip](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#Zip) -- [UnZip](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#UnZip) +- [ClearFile](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#ClearFile) +- [CreateFile](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#CreateFile) +- [CreateDir](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#CreateDir) +- [CopyFile](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#CopyFile) +- [FileMode](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#FileMode) +- [MiMeType](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#MiMeType) +- [IsExist](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#IsExist) +- [IsLink](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#IsLink) +- [IsDir](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#IsDir) +- [ListFileNames](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#ListFileNames) +- [RemoveFile](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#RemoveFile) +- [ReadFileToString](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#ReadFileToString) +- [ReadFileByLine](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#ReadFileByLine) +- [Zip](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#Zip) +- [UnZip](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#UnZip) ### 9. Formatter contains some functions for data formatting. ```go import "github.com/duke-git/lancet/v2/formatter" ``` + #### Function list: -- [Comma](https://github.com/duke-git/lancet/blob/main/docs/formatter.md#Comma) + +- [Comma](https://github.com/duke-git/lancet/blob/main/docs/formatter.md#Comma) ### 10. Function package can control the flow of function execution and support part of functional programming @@ -288,15 +301,15 @@ import "github.com/duke-git/lancet/v2/function" ``` #### Function list: -- [After](https://github.com/duke-git/lancet/blob/main/docs/function.md#After) -- [Before](https://github.com/duke-git/lancet/blob/main/docs/function.md#Before) -- [Curry](https://github.com/duke-git/lancet/blob/main/docs/function.md#Curry) -- [Compose](https://github.com/duke-git/lancet/blob/main/docs/function.md#Compose) -- [Debounced](https://github.com/duke-git/lancet/blob/main/docs/function.md#Debounced) -- [Delay](https://github.com/duke-git/lancet/blob/main/docs/function.md#Delay) -- [Pipeline](https://github.com/duke-git/lancet/blob/main/docs/function.md#Pipeline) -- [Watcher](https://github.com/duke-git/lancet/blob/main/docs/function.md#Watcher) +- [After](https://github.com/duke-git/lancet/blob/main/docs/function.md#After) +- [Before](https://github.com/duke-git/lancet/blob/main/docs/function.md#Before) +- [Curry](https://github.com/duke-git/lancet/blob/main/docs/function.md#Curry) +- [Compose](https://github.com/duke-git/lancet/blob/main/docs/function.md#Compose) +- [Debounced](https://github.com/duke-git/lancet/blob/main/docs/function.md#Debounced) +- [Delay](https://github.com/duke-git/lancet/blob/main/docs/function.md#Delay) +- [Pipeline](https://github.com/duke-git/lancet/blob/main/docs/function.md#Pipeline) +- [Watcher](https://github.com/duke-git/lancet/blob/main/docs/function.md#Watcher) ### 11. Maputil package includes some functions to manipulate map. @@ -305,15 +318,15 @@ import "github.com/duke-git/lancet/v2/maputil" ``` #### Function list: -- [ForEach](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#ForEach) -- [Filter](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#Filter) -- [Intersect](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#Intersect) -- [Keys](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#Keys) -- [Merge](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#Merge) -- [Minus](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#Minus) -- [Values](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#Values) -- [IsDisjoint](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#IsDisjoint) +- [ForEach](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#ForEach) +- [Filter](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#Filter) +- [Intersect](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#Intersect) +- [Keys](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#Keys) +- [Merge](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#Merge) +- [Minus](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#Minus) +- [Values](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#Values) +- [IsDisjoint](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#IsDisjoint) ### 12. Mathutil package implements some functions for math calculation. @@ -322,19 +335,19 @@ import "github.com/duke-git/lancet/v2/mathutil" ``` #### Function list: -- [Average](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#Average) -- [Exponent](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#Exponent) -- [Fibonacci](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#Fibonacci) -- [Factorial](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#Factorial) -- [Max](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#Max) -- [MaxBy](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#MaxBy) -- [Min](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#Min) -- [MinBy](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#MinBy) -- [Percent](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#Percent) -- [RoundToFloat](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#RoundToFloat) -- [RoundToString](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#RoundToString) -- [TruncRound](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#TruncRound) +- [Average](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#Average) +- [Exponent](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#Exponent) +- [Fibonacci](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#Fibonacci) +- [Factorial](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#Factorial) +- [Max](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#Max) +- [MaxBy](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#MaxBy) +- [Min](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#Min) +- [MinBy](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#MinBy) +- [Percent](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#Percent) +- [RoundToFloat](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#RoundToFloat) +- [RoundToString](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#RoundToString) +- [TruncRound](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#TruncRound) ### 13. Netutil package contains functions to get net information and send http request. @@ -343,27 +356,28 @@ import "github.com/duke-git/lancet/v2/netutil" ``` #### Function list: -- [ConvertMapToQueryString](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#ConvertMapToQueryString) -- [EncodeUrl](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#EncodeUrl) -- [GetInternalIp](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#GetInternalIp) -- [GetIps](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#GetIps) -- [GetMacAddrs](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#GetMacAddrs) -- [GetPublicIpInfo](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#GetPublicIpInfo) -- [GetRequestPublicIp](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#GetRequestPublicIp) -- [IsPublicIP](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#IsPublicIP) -- [IsInternalIP](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#IsInternalIP) -- [HttpRequest](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#HttpRequest) -- [HttpClient](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#HttpClient) -- [SendRequest](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#SendRequest) -- [DecodeResponse](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#DecodeResponse) -- [StructToUrlValues](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#StructToUrlValues) -- [HttpGetDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#HttpGet) -- [HttpDeleteDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#HttpDelete) -- [HttpPostDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#HttpPost) -- [HttpPutDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#HttpPut) -- [HttpPatchDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#HttpPatch) -- [ParseHttpResponse](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#ParseHttpResponse) +- [ConvertMapToQueryString](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#ConvertMapToQueryString) +- [EncodeUrl](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#EncodeUrl) +- [GetInternalIp](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#GetInternalIp) +- [GetIps](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#GetIps) +- [GetMacAddrs](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#GetMacAddrs) +- [GetPublicIpInfo](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#GetPublicIpInfo) +- [GetRequestPublicIp](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#GetRequestPublicIp) +- [IsPublicIP](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#IsPublicIP) +- [IsInternalIP](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#IsInternalIP) +- [HttpRequest](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#HttpRequest) +- [HttpClient](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#HttpClient) +- [SendRequest](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#SendRequest) +- [DecodeResponse](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#DecodeResponse) +- [StructToUrlValues](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#StructToUrlValues) + +- [HttpGetDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#HttpGet) +- [HttpDeleteDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#HttpDelete) +- [HttpPostDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#HttpPost) +- [HttpPutDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#HttpPut) +- [HttpPatchDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#HttpPatch) +- [ParseHttpResponse](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#ParseHttpResponse) ### 14. Random package implements some basic functions to generate random int and string. @@ -372,10 +386,15 @@ import "github.com/duke-git/lancet/v2/random" ``` #### Function list: -- [RandBytes](https://github.com/duke-git/lancet/blob/main/docs/random.md#RandBytes) -- [RandInt](https://github.com/duke-git/lancet/blob/main/docs/random.md#RandInt) -- [RandString](https://github.com/duke-git/lancet/blob/main/docs/random.md#RandString) -- [UUIdV4](https://github.com/duke-git/lancet/blob/main/docs/random.md#UUIdV4) + +- [RandBytes](https://github.com/duke-git/lancet/blob/main/docs/random.md#RandBytes) +- [RandInt](https://github.com/duke-git/lancet/blob/main/docs/random.md#RandInt) +- [RandString](https://github.com/duke-git/lancet/blob/main/docs/random.md#RandString) +- [RandUpper](https://github.com/duke-git/lancet/blob/main/docs/random.md#RandUpper) +- [RandLower](https://github.com/duke-git/lancet/blob/main/docs/random.md#RandLower) +- [RandNumeral](https://github.com/duke-git/lancet/blob/main/docs/random.md#RandNumeral) +- [RandNumeralOrLetter](https://github.com/duke-git/lancet/blob/main/docs/random.md#RandNumeralOrLetter) +- [UUIdV4](https://github.com/duke-git/lancet/blob/main/docs/random.md#UUIdV4) ### 15. Retry package is for executing a function repeatedly until it was successful or canceled by the context. @@ -384,11 +403,12 @@ import "github.com/duke-git/lancet/v2/retry" ``` #### Function list: -- [Context](https://github.com/duke-git/lancet/blob/main/docs/retry.md#Context) -- [Retry](https://github.com/duke-git/lancet/blob/main/docs/retry.md#Retry) -- [RetryFunc](https://github.com/duke-git/lancet/blob/main/docs/retry.md#RetryFunc) -- [RetryDuration](https://github.com/duke-git/lancet/blob/main/docs/retry.md#RetryDuration) -- [RetryTimes](https://github.com/duke-git/lancet/blob/main/docs/retry.md#RetryTimes) + +- [Context](https://github.com/duke-git/lancet/blob/main/docs/retry.md#Context) +- [Retry](https://github.com/duke-git/lancet/blob/main/docs/retry.md#Retry) +- [RetryFunc](https://github.com/duke-git/lancet/blob/main/docs/retry.md#RetryFunc) +- [RetryDuration](https://github.com/duke-git/lancet/blob/main/docs/retry.md#RetryDuration) +- [RetryTimes](https://github.com/duke-git/lancet/blob/main/docs/retry.md#RetryTimes) ### 16. Slice contains some functions to manipulate slice. @@ -397,93 +417,99 @@ import "github.com/duke-git/lancet/v2/slice" ``` #### Function list: -- [AppendIfAbsent](https://github.com/duke-git/lancet/blob/main/docs/slice.md#AppendIfAbsent) -- [Contain](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Contain) -- [ContainSubSlice](https://github.com/duke-git/lancet/blob/main/docs/slice.md#ContainSubSlice) -- [Chunk](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Chunk) -- [Compact](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Compact) -- [Concat](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Concat) -- [Count](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Count) -- [Difference](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Difference) -- [DifferenceBy](https://github.com/duke-git/lancet/blob/main/docs/slice.md#DifferenceBy) -- [DifferenceWith](https://github.com/duke-git/lancet/blob/main/docs/slice.md#DifferenceWith) -- [DeleteAt](https://github.com/duke-git/lancet/blob/main/docs/slice.md#DeleteAt) -- [Drop](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Drop) -- [Equal](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Equal) -- [EqualWith](https://github.com/duke-git/lancet/blob/main/docs/slice.md#EqualWith) -- [Every](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Every) -- [Filter](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Filter) -- [Find](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Find) -- [FindLast](https://github.com/duke-git/lancet/blob/main/docs/slice.md#FindLast) -- [Flatten](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Flatten) -- [FlattenDeep](https://github.com/duke-git/lancet/blob/main/docs/slice.md#FlattenDeep) -- [ForEach](https://github.com/duke-git/lancet/blob/main/docs/slice.md#ForEach) -- [GroupBy](https://github.com/duke-git/lancet/blob/main/docs/slice.md#GroupBy) -- [GroupWith](https://github.com/duke-git/lancet/blob/main/docs/slice.md#GroupWith) -- [IntSlice](https://github.com/duke-git/lancet/blob/main/docs/slice.md#IntSlice) -- [InterfaceSlice](https://github.com/duke-git/lancet/blob/main/docs/slice.md#InterfaceSlice) -- [Intersection](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Intersection) -- [InsertAt](https://github.com/duke-git/lancet/blob/main/docs/slice.md#InsertAt) -- [IndexOf](https://github.com/duke-git/lancet/blob/main/docs/slice.md#IndexOf) -- [LastIndexOf](https://github.com/duke-git/lancet/blob/main/docs/slice.md#LastIndexOf) -- [Map](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Map) -- [Reverse](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Reverse) -- [Reduce](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Reduce) -- [Replace](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Replace) -- [ReplaceAll](https://github.com/duke-git/lancet/blob/main/docs/slice.md#ReplaceAll) -- [Shuffle](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Shuffle) -- [SortByField](https://github.com/duke-git/lancet/blob/main/docs/slice.md#SortByField) -- [Some](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Some) -- [StringSlice](https://github.com/duke-git/lancet/blob/main/docs/slice.md#StringSlice) -- [SymmetricDifference](https://github.com/duke-git/lancet/blob/main/docs/slice.md#SymmetricDifference) -- [ToSlice](https://github.com/duke-git/lancet/blob/main/docs/slice.md#ToSlice) -- [ToSlicePointer](https://github.com/duke-git/lancet/blob/main/docs/slice.md#ToSlicePointer) -- [Unique](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Unique) -- [UniqueBy](https://github.com/duke-git/lancet/blob/main/docs/slice.md#UniqueBy) -- [Union](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Union) -- [UpdateAt](https://github.com/duke-git/lancet/blob/main/docs/slice.md#UpdateAt) -- [Without](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Without) + +- [AppendIfAbsent](https://github.com/duke-git/lancet/blob/main/docs/slice.md#AppendIfAbsent) +- [Contain](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Contain) +- [ContainSubSlice](https://github.com/duke-git/lancet/blob/main/docs/slice.md#ContainSubSlice) +- [Chunk](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Chunk) +- [Compact](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Compact) +- [Concat](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Concat) +- [Count](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Count) +- [Difference](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Difference) +- [DifferenceBy](https://github.com/duke-git/lancet/blob/main/docs/slice.md#DifferenceBy) +- [DifferenceWith](https://github.com/duke-git/lancet/blob/main/docs/slice.md#DifferenceWith) +- [DeleteAt](https://github.com/duke-git/lancet/blob/main/docs/slice.md#DeleteAt) +- [Drop](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Drop) +- [Equal](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Equal) +- [EqualWith](https://github.com/duke-git/lancet/blob/main/docs/slice.md#EqualWith) +- [Every](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Every) +- [Filter](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Filter) +- [Find](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Find) +- [FindLast](https://github.com/duke-git/lancet/blob/main/docs/slice.md#FindLast) +- [Flatten](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Flatten) +- [FlattenDeep](https://github.com/duke-git/lancet/blob/main/docs/slice.md#FlattenDeep) +- [ForEach](https://github.com/duke-git/lancet/blob/main/docs/slice.md#ForEach) +- [GroupBy](https://github.com/duke-git/lancet/blob/main/docs/slice.md#GroupBy) +- [GroupWith](https://github.com/duke-git/lancet/blob/main/docs/slice.md#GroupWith) +- [IntSlice](https://github.com/duke-git/lancet/blob/main/docs/slice.md#IntSlice) +- [InterfaceSlice](https://github.com/duke-git/lancet/blob/main/docs/slice.md#InterfaceSlice) +- [Intersection](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Intersection) +- [InsertAt](https://github.com/duke-git/lancet/blob/main/docs/slice.md#InsertAt) +- [IndexOf](https://github.com/duke-git/lancet/blob/main/docs/slice.md#IndexOf) +- [LastIndexOf](https://github.com/duke-git/lancet/blob/main/docs/slice.md#LastIndexOf) +- [Map](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Map) +- [Reverse](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Reverse) +- [Reduce](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Reduce) +- [Replace](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Replace) +- [ReplaceAll](https://github.com/duke-git/lancet/blob/main/docs/slice.md#ReplaceAll) +- [Shuffle](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Shuffle) +- [SortByField](https://github.com/duke-git/lancet/blob/main/docs/slice.md#SortByField) +- [Some](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Some) +- [StringSlice](https://github.com/duke-git/lancet/blob/main/docs/slice.md#StringSlice) +- [SymmetricDifference](https://github.com/duke-git/lancet/blob/main/docs/slice.md#SymmetricDifference) +- [ToSlice](https://github.com/duke-git/lancet/blob/main/docs/slice.md#ToSlice) +- [ToSlicePointer](https://github.com/duke-git/lancet/blob/main/docs/slice.md#ToSlicePointer) +- [Unique](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Unique) +- [UniqueBy](https://github.com/duke-git/lancet/blob/main/docs/slice.md#UniqueBy) +- [Union](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Union) +- [UnionBy](https://github.com/duke-git/lancet/blob/main/docs/slice.md#UnionBy) +- [UpdateAt](https://github.com/duke-git/lancet/blob/main/docs/slice.md#UpdateAt) +- [Without](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Without) +- [KeyBy](https://github.com/duke-git/lancet/blob/main/docs/slice.md#KeyBy) ### 17. Strutil package contains some functions to manipulate string. + ```go import "github.com/duke-git/lancet/v2/strutil" ``` #### Function list: -- [After](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#After) -- [AfterLast](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#AfterLast) -- [Before](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#Before) -- [BeforeLast](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#BeforeLast) -- [CamelCase](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#CamelCase) -- [Capitalize](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#Capitalize) -- [IsString](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#IsString) -- [KebabCase](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#KebabCase) -- [LowerFirst](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#LowerFirst) -- [UpperFirst](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#UpperFirst) -- [PadEnd](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#PadEnd) -- [PadStart](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#PadStart) -- [Reverse](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#Reverse) -- [SnakeCase](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#SnakeCase) -- [SplitEx](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#SplitEx) -- [Wrap](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#Wrap) -- [Unwrap](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#Unwrap) - +- [After](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#After) +- [AfterLast](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#AfterLast) +- [Before](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#Before) +- [BeforeLast](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#BeforeLast) +- [CamelCase](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#CamelCase) +- [Capitalize](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#Capitalize) +- [IsString](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#IsString) +- [KebabCase](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#KebabCase) +- [LowerFirst](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#LowerFirst) +- [UpperFirst](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#UpperFirst) +- [PadEnd](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#PadEnd) +- [PadStart](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#PadStart) +- [Reverse](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#Reverse) +- [SnakeCase](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#SnakeCase) +- [SplitEx](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#SplitEx) +- [Wrap](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#Wrap) +- [Unwrap](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#Unwrap) + ### 19. System package contain some functions about os, runtime, shell command. ```go import "github.com/duke-git/lancet/v2/system" ``` + #### Function list: -- [IsWindows](https://github.com/duke-git/lancet/blob/main/docs/system.md#IsWindows) -- [IsLinux](https://github.com/duke-git/lancet/blob/main/docs/system.md#IsLinux) -- [IsMac](https://github.com/duke-git/lancet/blob/main/docs/system.md#IsMac) -- [GetOsEnv](https://github.com/duke-git/lancet/blob/main/docs/system.md#GetOsEnv) -- [SetOsEnv](https://github.com/duke-git/lancet/blob/main/docs/system.md#SetOsEnv) -- [RemoveOsEnv](https://github.com/duke-git/lancet/blob/main/docs/system.md#RemoveOsEnv) -- [CompareOsEnv](https://github.com/duke-git/lancet/blob/main/docs/system.md#CompareOsEnv) -- [ExecCommand](https://github.com/duke-git/lancet/blob/main/docs/system.md#ExecCommand) -- [GetOsBits](https://github.com/duke-git/lancet/blob/main/docs/system.md#GetOsBits) + +- [IsWindows](https://github.com/duke-git/lancet/blob/main/docs/system.md#IsWindows) +- [IsLinux](https://github.com/duke-git/lancet/blob/main/docs/system.md#IsLinux) +- [IsMac](https://github.com/duke-git/lancet/blob/main/docs/system.md#IsMac) +- [GetOsEnv](https://github.com/duke-git/lancet/blob/main/docs/system.md#GetOsEnv) +- [SetOsEnv](https://github.com/duke-git/lancet/blob/main/docs/system.md#SetOsEnv) +- [RemoveOsEnv](https://github.com/duke-git/lancet/blob/main/docs/system.md#RemoveOsEnv) +- [CompareOsEnv](https://github.com/duke-git/lancet/blob/main/docs/system.md#CompareOsEnv) +- [ExecCommand](https://github.com/duke-git/lancet/blob/main/docs/system.md#ExecCommand) +- [GetOsBits](https://github.com/duke-git/lancet/blob/main/docs/system.md#GetOsBits) ### 19. Validator package contains some functions for data validation. @@ -493,41 +519,43 @@ import "github.com/duke-git/lancet/v2/validator" #### Function list: -- [ContainChinese](https://github.com/duke-git/lancet/blob/main/docs/validator.md#ContainChinese) -- [ContainLetter](https://github.com/duke-git/lancet/blob/main/docs/validator.md#ContainLetter) -- [ContainLower](https://github.com/duke-git/lancet/blob/main/docs/validator.md#ContainLower) -- [ContainUpper](https://github.com/duke-git/lancet/blob/main/docs/validator.md#ContainUpper) -- [IsAlpha](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsAlpha) -- [IsAllUpper](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsAllUpper) -- [IsAllLower](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsAllLower) -- [IsBase64](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsBase64) -- [IsChineseMobile](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsChineseMobile) -- [IsChineseIdNum](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsChineseIdNum) -- [IsChinesePhone](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsChinesePhone) -- [IsCreditCard](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsCreditCard) -- [IsDns](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsDns) -- [IsEmail](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsEmail) -- [IsEmptyString](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsEmptyString) -- [IsFloatStr](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsFloatStr) -- [IsNumberStr](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsNumberStr) -- [IsJSON](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsJSON) -- [IsRegexMatch](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsRegexMatch) -- [IsIntStr](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsIntStr) -- [IsIp](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsIp) -- [IsIpV4](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsIpV4) -- [IsIpV6](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsIpV6) -- [IsStrongPassword](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsStrongPassword) -- [IsUrl](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsUrl) -- [IsWeakPassword](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsWeakPassword) -- [IsZeroValue](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsZeroValue) +- [ContainChinese](https://github.com/duke-git/lancet/blob/main/docs/validator.md#ContainChinese) +- [ContainLetter](https://github.com/duke-git/lancet/blob/main/docs/validator.md#ContainLetter) +- [ContainLower](https://github.com/duke-git/lancet/blob/main/docs/validator.md#ContainLower) +- [ContainUpper](https://github.com/duke-git/lancet/blob/main/docs/validator.md#ContainUpper) +- [IsAlpha](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsAlpha) +- [IsAllUpper](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsAllUpper) +- [IsAllLower](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsAllLower) +- [IsBase64](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsBase64) +- [IsChineseMobile](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsChineseMobile) +- [IsChineseIdNum](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsChineseIdNum) +- [IsChinesePhone](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsChinesePhone) +- [IsCreditCard](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsCreditCard) +- [IsDns](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsDns) +- [IsEmail](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsEmail) +- [IsEmptyString](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsEmptyString) +- [IsFloatStr](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsFloatStr) +- [IsNumberStr](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsNumberStr) +- [IsJSON](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsJSON) +- [IsRegexMatch](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsRegexMatch) +- [IsIntStr](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsIntStr) +- [IsIp](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsIp) +- [IsIpV4](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsIpV4) +- [IsIpV6](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsIpV6) +- [IsStrongPassword](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsStrongPassword) +- [IsUrl](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsUrl) +- [IsWeakPassword](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsWeakPassword) +- [IsZeroValue](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsZeroValue) + ### 20. xerror package implements helpers for errors. ```go import "github.com/duke-git/lancet/v2/xerror" ``` + #### Function list: -- [Unwrap](https://github.com/duke-git/lancet/blob/main/docs/xerror.md#Unwrap) - + +- [Unwrap](https://github.com/duke-git/lancet/blob/main/docs/xerror.md#Unwrap) ## How to Contribute diff --git a/README_zh-CN.md b/README_zh-CN.md index e61a377..9977fa1 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -10,6 +10,7 @@ [![test](https://github.com/duke-git/lancet/actions/workflows/codecov.yml/badge.svg?branch=main&event=push)](https://github.com/duke-git/lancet/actions/workflows/codecov.yml) [![codecov](https://codecov.io/gh/duke-git/lancet/branch/main/graph/badge.svg?token=FC48T1F078)](https://codecov.io/gh/duke-git/lancet) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/duke-git/lancet/blob/main/LICENSE) +
@@ -19,30 +20,32 @@ 简体中文 | [English](./README.md) - ## 特性 -- 👏 全面、高效、可复用 -- 💪 300+常用go工具函数,支持string、slice、datetime、net、crypt... -- 💅 只依赖go标准库 -- 🌍 所有导出函数单元测试覆盖率100% +- 👏 全面、高效、可复用 +- 💪 300+常用 go 工具函数,支持 string、slice、datetime、net、crypt... +- 💅 只依赖 go 标准库 +- 🌍 所有导出函数单元测试覆盖率 100% ## 安装 -### Note: -1. 对于使用go1.18及以上的用户,建议安装v2.x.x。 因为v2.x.x用go1.18的泛型重写了大部分函数。 + +### Note: + +1. 对于使用 go1.18 及以上的用户,建议安装 v2.x.x。 因为 v2.x.x 用 go1.18 的泛型重写了大部分函数。 ```go go get github.com/duke-git/lancet/v2 //安装v2最新版本v2.x.x ``` -2. 使用go1.18以下版本的用户,必须安装v1.x.x。目前最新的v1版本是v1.3.2。 +2. 使用 go1.18 以下版本的用户,必须安装 v1.x.x。目前最新的 v1 版本是 v1.3.2。 + ```go go get github.com/duke-git/lancet@v1.3.2 // 使用go1.18以下版本, 必须安装v1.x.x版本 ``` ## 用法 -lancet是以包的结构组织代码的,使用时需要导入相应的包名。例如:如果使用字符串相关函数,需要导入strutil包: +lancet 是以包的结构组织代码的,使用时需要导入相应的包名。例如:如果使用字符串相关函数,需要导入 strutil 包: ```go import "github.com/duke-git/lancet/v2/strutil" @@ -50,7 +53,7 @@ import "github.com/duke-git/lancet/v2/strutil" ## 例子 -此处以字符串工具函数Reverse(逆序字符串)为例,需要导入strutil包: +此处以字符串工具函数 Reverse(逆序字符串)为例,需要导入 strutil 包: ```go package main @@ -67,164 +70,172 @@ func main() { } ``` -## API文档 +## API 文档 + ## [lancet API doc](https://uvdream.github.io/lancet-docs/) 感谢[@UvDream](https://github.com/UvDream)整理 -### 1. algorithm算法包实现一些基本算法。eg. sort, search. + +### 1. algorithm 算法包实现一些基本算法。eg. sort, search. ```go import "github.com/duke-git/lancet/v2/algorithm" ``` + #### Function list: -- [BubbleSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#BubbleSort) -- [CountSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#CountSort) -- [HeapSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#HeapSort) -- [InsertionSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#InsertionSort) -- [MergeSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#MergeSort) -- [QuickSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#QuickSort) -- [SelectionSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#SelectionSort) -- [ShellSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#ShellSort) -- [BinarySearch](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#BinarySearch) -- [BinaryIterativeSearch](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#BinaryIterativeSearch) -- [LinearSearch](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#LinearSearch) -- [LRUCache](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#LRUCache) +- [BubbleSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#BubbleSort) +- [CountSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#CountSort) +- [HeapSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#HeapSort) +- [InsertionSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#InsertionSort) +- [MergeSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#MergeSort) +- [QuickSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#QuickSort) +- [SelectionSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#SelectionSort) +- [ShellSort](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#ShellSort) +- [BinarySearch](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#BinarySearch) +- [BinaryIterativeSearch](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#BinaryIterativeSearch) +- [LinearSearch](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#LinearSearch) +- [LRUCache](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#LRUCache) -### 2. concurrency并发包包含一些支持并发编程的功能。例如:goroutine, channel, async等。 +### 2. concurrency 并发包包含一些支持并发编程的功能。例如:goroutine, channel, async 等。 ```go import "github.com/duke-git/lancet/v2/concurrency" ``` + #### Function list: -- [NewChannel](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#NewChannel) -- [Bridge](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#Bridge) -- [FanIn](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#FanIn) -- [Generate](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#Generate) -- [Or](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#Or) -- [OrDone](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#OrDone) -- [Repeat](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#Repeat) -- [RepeatFn](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#RepeatFn) -- [Take](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#Take) -- [Tee](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#Tee) +- [NewChannel](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#NewChannel) +- [Bridge](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#Bridge) +- [FanIn](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#FanIn) +- [Generate](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#Generate) +- [Or](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#Or) +- [OrDone](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#OrDone) +- [Repeat](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#Repeat) +- [RepeatFn](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#RepeatFn) +- [Take](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#Take) +- [Tee](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#Tee) -### 3. condition条件包含一些用于条件判断的函数。eg. And, Or, TernaryOperator... +### 3. condition 条件包含一些用于条件判断的函数。eg. And, Or, TernaryOperator... ```go import "github.com/duke-git/lancet/v2/condition" ``` + #### Function list: -- [Bool](https://github.com/duke-git/lancet/blob/main/docs/condition_zh-CN.md#Bool) -- [And](https://github.com/duke-git/lancet/blob/main/docs/condition_zh-CN.md#And) -- [Or](https://github.com/duke-git/lancet/blob/main/docs/condition_zh-CN.md#Or) -- [Xor](https://github.com/duke-git/lancet/blob/main/docs/condition_zh-CN.md#Xor) -- [Nor](https://github.com/duke-git/lancet/blob/main/docs/condition_zh-CN.md#Nor) -- [Nand](https://github.com/duke-git/lancet/blob/main/docs/condition_zh-CN.md#Nand) -- [TernaryOperator](https://github.com/duke-git/lancet/blob/main/docs/condition_zh-CN.md#TernaryOperator) - -### 4. convertor转换器包支持一些常见的数据类型转换。 + +- [Bool](https://github.com/duke-git/lancet/blob/main/docs/condition_zh-CN.md#Bool) +- [And](https://github.com/duke-git/lancet/blob/main/docs/condition_zh-CN.md#And) +- [Or](https://github.com/duke-git/lancet/blob/main/docs/condition_zh-CN.md#Or) +- [Xor](https://github.com/duke-git/lancet/blob/main/docs/condition_zh-CN.md#Xor) +- [Nor](https://github.com/duke-git/lancet/blob/main/docs/condition_zh-CN.md#Nor) +- [Nand](https://github.com/duke-git/lancet/blob/main/docs/condition_zh-CN.md#Nand) +- [TernaryOperator](https://github.com/duke-git/lancet/blob/main/docs/condition_zh-CN.md#TernaryOperator) + +### 4. convertor 转换器包支持一些常见的数据类型转换。 ```go import "github.com/duke-git/lancet/v2/convertor" ``` + #### 函数列表: -- [ColorHexToRGB](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ColorHexToRGB) -- [ColorRGBToHex](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ColorRGBToHex) -- [ToBool](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToBool) -- [ToBytes](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToBytes) -- [ToChar](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToChar) -- [ToChannel](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToChannel) -- [ToFloat](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToFloat) -- [ToInt](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToInt) -- [ToJson](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToJson) -- [ToMap](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToMap) -- [ToPointer](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToPointer) -- [ToString](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToString) -- [StructToMap](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#StructToMap) -- [MapToSlice](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#MapToSlice) -- [EncodeByte](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#EncodeByte) -- [DecodeByte](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#DecodeByte) - -### 5. cryptor加密包支持数据加密和解密,获取md5,hash值。支持base64, md5, hmac, aes, des, rsa。 + +- [ColorHexToRGB](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ColorHexToRGB) +- [ColorRGBToHex](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ColorRGBToHex) +- [ToBool](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToBool) +- [ToBytes](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToBytes) +- [ToChar](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToChar) +- [ToChannel](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToChannel) +- [ToFloat](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToFloat) +- [ToInt](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToInt) +- [ToJson](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToJson) +- [ToMap](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToMap) +- [ToPointer](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToPointer) +- [ToString](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#ToString) +- [StructToMap](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#StructToMap) +- [MapToSlice](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#MapToSlice) +- [EncodeByte](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#EncodeByte) +- [DecodeByte](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#DecodeByte) + +### 5. cryptor 加密包支持数据加密和解密,获取 md5,hash 值。支持 base64, md5, hmac, aes, des, rsa。 ```go import "github.com/duke-git/lancet/v2/cryptor" ``` #### 函数列表: -- [AesEcbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesEcbEncrypt) -- [AesEcbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesEcbDecrypt) -- [AesCbcEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesCbcEncrypt) -- [AesCbcDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesCbcDecrypt) -- [AesCtrCrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesCtrCrypt) -- [AesCfbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesCfbEncrypt) -- [AesCfbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesCfbDecrypt) -- [AesOfbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesOfbEncrypt) -- [AesOfbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesOfbDecrypt) -- [Base64StdEncode](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#Base64StdEncode) -- [Base64StdDecode](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#Base64StdDecode) -- [DesEcbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesEcbEncrypt) -- [DesEcbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesEcbDecrypt) -- [DesCbcEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesCbcEncrypt) -- [DesCbcDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesCbcDecrypt) -- [DesCtrCrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesCtrCrypt) -- [DesCfbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesCfbEncrypt) -- [DesCfbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesCfbDecrypt) -- [DesOfbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesOfbEncrypt) -- [DesOfbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesOfbDecrypt) -- [HmacMd5](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#HmacMd5) -- [HmacSha1](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#HmacSha1) -- [HmacSha256](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#HmacSha256) -- [HmacSha512](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#HmacSha512) -- [Md5String](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#Md5String) -- [Md5File](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#Md5File) -- [Sha1](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#Sha1) -- [Sha256](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#Sha256) -- [Sha512](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#Sha512) -- [GenerateRsaKey](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#GenerateRsaKey) -- [RsaEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#RsaEncrypt) -- [RsaDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#RsaDecrypt) -### 6. datetime日期时间处理包,格式化日期,比较日期。 +- [AesEcbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesEcbEncrypt) +- [AesEcbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesEcbDecrypt) +- [AesCbcEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesCbcEncrypt) +- [AesCbcDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesCbcDecrypt) +- [AesCtrCrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesCtrCrypt) +- [AesCfbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesCfbEncrypt) +- [AesCfbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesCfbDecrypt) +- [AesOfbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesOfbEncrypt) +- [AesOfbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#AesOfbDecrypt) +- [Base64StdEncode](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#Base64StdEncode) +- [Base64StdDecode](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#Base64StdDecode) +- [DesEcbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesEcbEncrypt) +- [DesEcbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesEcbDecrypt) +- [DesCbcEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesCbcEncrypt) +- [DesCbcDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesCbcDecrypt) +- [DesCtrCrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesCtrCrypt) +- [DesCfbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesCfbEncrypt) +- [DesCfbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesCfbDecrypt) +- [DesOfbEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesOfbEncrypt) +- [DesOfbDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#DesOfbDecrypt) +- [HmacMd5](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#HmacMd5) +- [HmacSha1](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#HmacSha1) +- [HmacSha256](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#HmacSha256) +- [HmacSha512](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#HmacSha512) +- [Md5String](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#Md5String) +- [Md5File](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#Md5File) +- [Sha1](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#Sha1) +- [Sha256](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#Sha256) +- [Sha512](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#Sha512) +- [GenerateRsaKey](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#GenerateRsaKey) +- [RsaEncrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#RsaEncrypt) +- [RsaDecrypt](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#RsaDecrypt) +### 6. datetime 日期时间处理包,格式化日期,比较日期。 ```go import "github.com/duke-git/lancet/v2/datetime" ``` + #### 函数列表: -- [AddDay](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#AddDay) -- [AddHour](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#AddHour) -- [AddMinute](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#AddMinute) -- [BeginOfMinute](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfMinute) -- [BeginOfHour](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfHour) -- [BeginOfDay](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfDay) -- [BeginOfWeek](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfWeek) -- [BeginOfMonth](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfMonth) -- [BeginOfYear](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfYear) -- [EndOfMinute](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfMinute) -- [EndOfHour](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfHour) -- [EndOfDay](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfDay) -- [EndOfWeek](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfWeek) -- [EndOfMonth](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfMonth) -- [EndOfYear](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfYear) -- [GetNowDate](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#GetNowDate) -- [GetNowTime](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#GetNowTime) -- [GetNowDateTime](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#GetNowDateTime) -- [GetZeroHourTimestamp](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#GetZeroHourTimestamp) -- [GetNightTimestamp](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#GetNightTimestamp) -- [FormatTimeToStr](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#FormatTimeToStr) -- [FormatStrToTime](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#FormatStrToTime) -- [NewUnix](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#NewUnix) -- [NewUnixNow](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#NewUnixNow) -- [NewFormat](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#NewFormat) -- [NewISO8601](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#NewISO8601) -- [ToUnix](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#ToUnix) -- [ToFormat](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#ToFormat) -- [ToFormatForTpl](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#ToFormatForTpl) -- [ToIso8601](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#ToIso8601) +- [AddDay](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#AddDay) +- [AddHour](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#AddHour) +- [AddMinute](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#AddMinute) +- [BeginOfMinute](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfMinute) +- [BeginOfHour](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfHour) +- [BeginOfDay](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfDay) +- [BeginOfWeek](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfWeek) +- [BeginOfMonth](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfMonth) +- [BeginOfYear](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#BeginOfYear) +- [EndOfMinute](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfMinute) +- [EndOfHour](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfHour) +- [EndOfDay](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfDay) +- [EndOfWeek](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfWeek) +- [EndOfMonth](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfMonth) +- [EndOfYear](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#EndOfYear) +- [GetNowDate](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#GetNowDate) +- [GetNowTime](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#GetNowTime) +- [GetNowDateTime](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#GetNowDateTime) +- [GetZeroHourTimestamp](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#GetZeroHourTimestamp) +- [GetNightTimestamp](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#GetNightTimestamp) +- [FormatTimeToStr](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#FormatTimeToStr) +- [FormatStrToTime](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#FormatStrToTime) +- [NewUnix](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#NewUnix) +- [NewUnixNow](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#NewUnixNow) +- [NewFormat](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#NewFormat) +- [NewISO8601](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#NewISO8601) +- [ToUnix](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#ToUnix) +- [ToFormat](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#ToFormat) +- [ToFormatForTpl](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#ToFormatForTpl) +- [ToIso8601](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#ToIso8601) -### 7. datastructure包含一些普通的数据结构实现。例如:list, linklist, stack, queue, set, tree, graph. - +### 7. datastructure 包含一些普通的数据结构实现。例如:list, linklist, stack, queue, set, tree, graph. ```go import list "github.com/duke-git/lancet/v2/datastructure/list" @@ -236,18 +247,19 @@ import tree "github.com/duke-git/lancet/v2/datastructure/tree" import heap "github.com/duke-git/lancet/v2/datastructure/heap" import hashmap "github.com/duke-git/lancet/v2/datastructure/hashmap" ``` + #### Function list: -- [List](https://github.com/duke-git/lancet/blob/main/docs/datastructure/list_zh-CN.md) -- [Linklist](https://github.com/duke-git/lancet/blob/main/docs/datastructure/linklist_zh-CN.md) -- [Stack](https://github.com/duke-git/lancet/blob/main/docs/datastructure/stack_zh-CN.md) -- [Queue](https://github.com/duke-git/lancet/blob/main/docs/datastructure/queue_zh-CN.md) -- [Set](https://github.com/duke-git/lancet/blob/main/docs/datastructure/set_zh-CN.md) -- [Tree](https://github.com/duke-git/lancet/blob/main/docs/datastructure/tree_zh-CN.md) -- [Heap](https://github.com/duke-git/lancet/blob/main/docs/datastructure/heap.md) -- [HashMap](https://github.com/duke-git/lancet/blob/main/docs/datastructure/hashmap.md) +- [List](https://github.com/duke-git/lancet/blob/main/docs/datastructure/list_zh-CN.md) +- [Linklist](https://github.com/duke-git/lancet/blob/main/docs/datastructure/linklist_zh-CN.md) +- [Stack](https://github.com/duke-git/lancet/blob/main/docs/datastructure/stack_zh-CN.md) +- [Queue](https://github.com/duke-git/lancet/blob/main/docs/datastructure/queue_zh-CN.md) +- [Set](https://github.com/duke-git/lancet/blob/main/docs/datastructure/set_zh-CN.md) +- [Tree](https://github.com/duke-git/lancet/blob/main/docs/datastructure/tree_zh-CN.md) +- [Heap](https://github.com/duke-git/lancet/blob/main/docs/datastructure/heap.md) +- [HashMap](https://github.com/duke-git/lancet/blob/main/docs/datastructure/hashmap.md) -### 8. fileutil包支持文件基本操作。 +### 8. fileutil 包支持文件基本操作。 ```go import "github.com/duke-git/lancet/v2/fileutil" @@ -255,192 +267,204 @@ import "github.com/duke-git/lancet/v2/fileutil" #### 函数列表: -- [ClearFile](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#ClearFile) -- [CreateFile](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#CreateFile) -- [CreateDir](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#CreateDir) -- [CopyFile](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#CopyFile) -- [FileMode](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#FileMode) -- [MiMeType](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#MiMeType) -- [IsExist](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#IsExist) -- [IsLink](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#IsLink) -- [IsDir](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#IsDir) -- [ListFileNames](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#ListFileNames) -- [RemoveFile](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#RemoveFile) -- [ReadFileToString](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#ReadFileToString) -- [ReadFileByLine](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#ReadFileByLine) -- [Zip](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#Zip) -- [UnZip](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#UnZip) +- [ClearFile](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#ClearFile) +- [CreateFile](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#CreateFile) +- [CreateDir](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#CreateDir) +- [CopyFile](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#CopyFile) +- [FileMode](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#FileMode) +- [MiMeType](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#MiMeType) +- [IsExist](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#IsExist) +- [IsLink](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#IsLink) +- [IsDir](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#IsDir) +- [ListFileNames](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#ListFileNames) +- [RemoveFile](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#RemoveFile) +- [ReadFileToString](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#ReadFileToString) +- [ReadFileByLine](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#ReadFileByLine) +- [Zip](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#Zip) +- [UnZip](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#UnZip) -### 9. formatter格式化器包含一些数据格式化处理方法。 +### 9. formatter 格式化器包含一些数据格式化处理方法。 ```go import "github.com/duke-git/lancet/v2/formatter" ``` + #### 函数列表: -- [Comma](https://github.com/duke-git/lancet/blob/main/docs/formatter_zh-CN.md#Comma) +- [Comma](https://github.com/duke-git/lancet/blob/main/docs/formatter_zh-CN.md#Comma) -### 10. function函数包控制函数执行流程,包含部分函数式编程。 +### 10. function 函数包控制函数执行流程,包含部分函数式编程。 ```go import "github.com/duke-git/lancet/v2/function" ``` #### 函数列表: -- [After](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#After) -- [Before](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#Before) -- [Curry](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#Curry) -- [Compose](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#Compose) -- [Debounced](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#Debounced) -- [Delay](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#Delay) -- [Pipeline](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#Pipeline) -- [Watcher](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#Watcher) +- [After](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#After) +- [Before](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#Before) +- [Curry](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#Curry) +- [Compose](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#Compose) +- [Debounced](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#Debounced) +- [Delay](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#Delay) +- [Pipeline](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#Pipeline) +- [Watcher](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#Watcher) -### 11. maputil包包括一些操作map的函数. +### 11. maputil 包包括一些操作 map 的函数. ```go import "github.com/duke-git/lancet/v2/maputil" ``` #### 函数列表: -- [ForEach](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#ForEach) -- [Filter](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#Filter) -- [Intersect](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#Intersect) -- [Keys](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#Keys) -- [Merge](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#Merge) -- [Minus](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#Minus) -- [Values](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#Values) -- [IsDisjoint](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#IsDisjoint) -### 12. mathutil包实现了一些数学计算的函数。 +- [ForEach](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#ForEach) +- [Filter](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#Filter) +- [Intersect](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#Intersect) +- [Keys](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#Keys) +- [Merge](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#Merge) +- [Minus](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#Minus) +- [Values](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#Values) +- [IsDisjoint](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#IsDisjoint) + +### 12. mathutil 包实现了一些数学计算的函数。 ```go import "github.com/duke-git/lancet/v2/mathutil" ``` #### Function list: -- [Average](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#Average) -- [Exponent](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#Exponent) -- [Fibonacci](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#Fibonacci) -- [Factorial](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#Factorial) -- [Max](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#Max) -- [MaxBy](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#MaxBy) -- [Min](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#Min) -- [MinBy](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#MinBy) -- [Percent](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#Percent) -- [RoundToFloat](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#RoundToFloat) -- [RoundToString](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#RoundToString) -- [TruncRound](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#TruncRound) -### 13. netutil网络包支持获取ip地址,发送http请求。 +- [Average](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#Average) +- [Exponent](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#Exponent) +- [Fibonacci](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#Fibonacci) +- [Factorial](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#Factorial) +- [Max](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#Max) +- [MaxBy](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#MaxBy) +- [Min](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#Min) +- [MinBy](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#MinBy) +- [Percent](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#Percent) +- [RoundToFloat](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#RoundToFloat) +- [RoundToString](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#RoundToString) +- [TruncRound](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#TruncRound) + +### 13. netutil 网络包支持获取 ip 地址,发送 http 请求。 ```go import "github.com/duke-git/lancet/v2/netutil" ``` #### 函数列表: -- [ConvertMapToQueryString](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#ConvertMapToQueryString) -- [GetInternalIp](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#GetInternalIp) -- [EncodeUrl](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#EncodeUrl) -- [GetIps](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#GetIps) -- [GetMacAddrs](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#GetMacAddrs) -- [GetPublicIpInfo](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#GetPublicIpInfo) -- [GetRequestPublicIp](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#GetRequestPublicIp) -- [IsPublicIP](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#IsPublicIP) -- [IsInternalIP](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#IsInternalIP) -- [HttpRequest](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#HttpRequest) -- [HttpClient](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#HttpClient) -- [SendRequest](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#SendRequest) -- [DecodeResponse](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#DecodeResponse) -- [StructToUrlValues](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#StructToUrlValues) -- [HttpGetDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#HttpGet) -- [HttpDeleteDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#HttpDelete) -- [HttpPostDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#HttpPost) -- [HttpPutDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#HttpPut) -- [HttpPatchDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#HttpPatch) -- [ParseHttpResponse](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#ParseHttpResponse) +- [ConvertMapToQueryString](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#ConvertMapToQueryString) +- [GetInternalIp](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#GetInternalIp) +- [EncodeUrl](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#EncodeUrl) +- [GetIps](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#GetIps) +- [GetMacAddrs](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#GetMacAddrs) +- [GetPublicIpInfo](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#GetPublicIpInfo) +- [GetRequestPublicIp](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#GetRequestPublicIp) +- [IsPublicIP](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#IsPublicIP) +- [IsInternalIP](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#IsInternalIP) +- [HttpRequest](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#HttpRequest) +- [HttpClient](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#HttpClient) +- [SendRequest](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#SendRequest) +- [DecodeResponse](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#DecodeResponse) +- [StructToUrlValues](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#StructToUrlValues) -### 14. random随机数生成器包,可以生成随机[]bytes, int, string。 +- [HttpGetDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#HttpGet) +- [HttpDeleteDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#HttpDelete) +- [HttpPostDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#HttpPost) +- [HttpPutDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#HttpPut) +- [HttpPatchDeprecated](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#HttpPatch) +- [ParseHttpResponse](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#ParseHttpResponse) + +### 14. random 随机数生成器包,可以生成随机[]bytes, int, string。 ```go import "github.com/duke-git/lancet/v2/random" ``` #### 函数列表: -- [RandBytes](https://github.com/duke-git/lancet/blob/main/docs/random_zh-CN.md#RandBytes) -- [RandInt](https://github.com/duke-git/lancet/blob/main/docs/random_zh-CN.md#RandInt) -- [RandString](https://github.com/duke-git/lancet/blob/main/docs/random_zh-CN.md#RandString) -- [UUIdV4](https://github.com/duke-git/lancet/blob/main/docs/random.md#UUIdV4) -### 15. retry重试执行函数直到函数运行成功或被context cancel。 + +- [RandBytes](https://github.com/duke-git/lancet/blob/main/docs/random_zh-CN.md#RandBytes) +- [RandInt](https://github.com/duke-git/lancet/blob/main/docs/random_zh-CN.md#RandInt) +- [RandString](https://github.com/duke-git/lancet/blob/main/docs/random_zh-CN.md#RandString) +- [RandUpper](https://github.com/duke-git/lancet/blob/main/docs/random_zh-CN.md#RandUpper) +- [RandLower](https://github.com/duke-git/lancet/blob/main/docs/random_zh-CN.md#RandLower) +- [RandNumeral](https://github.com/duke-git/lancet/blob/main/docs/random_zh-CN.md#RandNumeral) +- [RandNumeralOrLetter](https://github.com/duke-git/lancet/blob/main/docs/random_zh-CN.md#RandNumeralOrLetter) +- [UUIdV4](https://github.com/duke-git/lancet/blob/main/docs/random.md#UUIdV4) + +### 15. retry 重试执行函数直到函数运行成功或被 context cancel。 ```go import "github.com/duke-git/lancet/v2/retry" ``` #### 函数列表: -- [Context](https://github.com/duke-git/lancet/blob/main/docs/retry_zh-CN.md#Context) -- [Retry](https://github.com/duke-git/lancet/blob/main/docs/retry_zh-CN.md#Retry) -- [RetryFunc](https://github.com/duke-git/lancet/blob/main/docs/retry_zh-CN.md#RetryFunc) -- [RetryDuration](https://github.com/duke-git/lancet/blob/main/docs/retry_zh-CN.md#RetryDuration) -- [RetryTimes](https://github.com/duke-git/lancet/blob/main/docs/retry_zh-CN.md#RetryTimes) +- [Context](https://github.com/duke-git/lancet/blob/main/docs/retry_zh-CN.md#Context) +- [Retry](https://github.com/duke-git/lancet/blob/main/docs/retry_zh-CN.md#Retry) +- [RetryFunc](https://github.com/duke-git/lancet/blob/main/docs/retry_zh-CN.md#RetryFunc) +- [RetryDuration](https://github.com/duke-git/lancet/blob/main/docs/retry_zh-CN.md#RetryDuration) +- [RetryTimes](https://github.com/duke-git/lancet/blob/main/docs/retry_zh-CN.md#RetryTimes) -### 16. slice包包含操作切片的方法集合。 +### 16. slice 包包含操作切片的方法集合。 ```go import "github.com/duke-git/lancet/v2/slice" ``` #### 函数列表: -- [AppendIfAbsent](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#AppendIfAbsent) -- [Contain](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Contain) -- [ContainSubSlice](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#ContainSubSlice) -- [Chunk](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Chunk) -- [Compact](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Compact) -- [Concat](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Concat) -- [Count](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Count) -- [Difference](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Difference) -- [DifferenceBy](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#DifferenceBy) -- [DifferenceWith](https://github.com/duke-git/lancet/blob/main/docs/slice.md#DifferenceWith) -- [DeleteAt](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#DeleteAt) -- [Drop](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Drop) -- [Every](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Every) -- [Filter](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Filter) -- [Find](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Find) -- [FindLast](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#FindLast) -- [Flatten](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Flatten) -- [FlattenDeep](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#FlattenDeep) -- [ForEach](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#ForEach) -- [GroupBy](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#GroupBy) -- [GroupWith](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#GroupWith) -- [IntSlice](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#IntSlice) -- [InterfaceSlice](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#InterfaceSlice) -- [Intersection](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Intersection) -- [InsertAt](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#InsertAt) -- [IndexOf](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#IndexOf) -- [LastIndexOf](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#LastIndexOf) -- [Map](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Map) -- [Reverse](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Reverse) -- [Reduce](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Reduce) -- [Replace](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Replace) -- [ReplaceAll](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#ReplaceAll) -- [Shuffle](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Shuffle) -- [SortByField](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#SortByField) -- [Some](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Some) -- [StringSlice](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#StringSlice) -- [SymmetricDifference](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#SymmetricDifference) -- [ToSlice](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#ToSlice) -- [ToSlicePointer](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#ToSlicePointer) -- [Unique](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Unique) -- [UniqueBy](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#UniqueBy) -- [Union](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Union) -- [UpdateAt](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#UpdateAt) -- [Without](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Without) +- [AppendIfAbsent](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#AppendIfAbsent) +- [Contain](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Contain) +- [ContainSubSlice](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#ContainSubSlice) +- [Chunk](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Chunk) +- [Compact](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Compact) +- [Concat](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Concat) +- [Count](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Count) +- [Difference](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Difference) +- [DifferenceBy](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#DifferenceBy) +- [DifferenceWith](https://github.com/duke-git/lancet/blob/main/docs/slice.md#DifferenceWith) +- [DeleteAt](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#DeleteAt) +- [Drop](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Drop) +- [Every](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Every) +- [Filter](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Filter) +- [Find](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Find) +- [FindLast](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#FindLast) +- [Flatten](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Flatten) +- [FlattenDeep](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#FlattenDeep) +- [ForEach](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#ForEach) +- [GroupBy](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#GroupBy) +- [GroupWith](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#GroupWith) +- [IntSlice](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#IntSlice) +- [InterfaceSlice](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#InterfaceSlice) +- [Intersection](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Intersection) +- [InsertAt](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#InsertAt) +- [IndexOf](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#IndexOf) +- [LastIndexOf](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#LastIndexOf) +- [Map](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Map) +- [Reverse](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Reverse) +- [Reduce](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Reduce) +- [Replace](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Replace) +- [ReplaceAll](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#ReplaceAll) +- [Shuffle](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Shuffle) +- [SortByField](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#SortByField) +- [Some](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Some) +- [StringSlice](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#StringSlice) +- [SymmetricDifference](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#SymmetricDifference) +- [ToSlice](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#ToSlice) +- [ToSlicePointer](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#ToSlicePointer) +- [Unique](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Unique) +- [UniqueBy](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#UniqueBy) +- [Union](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Union) +- [UniqueBy](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#UniqueBy) +- [UpdateAt](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#UpdateAt) +- [Without](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Without) +- [KeyBy](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#KeyBy) -### 17. strutil包含处理字符串的相关函数。 +### 17. strutil 包含处理字符串的相关函数。 ```go import "github.com/duke-git/lancet/v2/strutil" @@ -448,91 +472,94 @@ import "github.com/duke-git/lancet/v2/strutil" #### 函数列表: -- [After](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#After) -- [AfterLast](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#AfterLast) -- [Before](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#Before) -- [BeforeLast](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#BeforeLast) -- [CamelCase](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#CamelCase) -- [Capitalize](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#Capitalize) -- [IsString](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#IsString) -- [KebabCase](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#KebabCase) -- [LowerFirst](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#LowerFirst) -- [UpperFirst](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#UpperFirst) -- [PadEnd](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#PadEnd) -- [PadStart](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#PadStart) -- [Reverse](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#Reverse) -- [SnakeCase](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#SnakeCase) -- [SplitEx](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#SplitEx) -- [Wrap](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#Wrap) -- [Unwrap](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#Unwrap) - +- [After](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#After) +- [AfterLast](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#AfterLast) +- [Before](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#Before) +- [BeforeLast](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#BeforeLast) +- [CamelCase](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#CamelCase) +- [Capitalize](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#Capitalize) +- [IsString](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#IsString) +- [KebabCase](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#KebabCase) +- [LowerFirst](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#LowerFirst) +- [UpperFirst](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#UpperFirst) +- [PadEnd](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#PadEnd) +- [PadStart](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#PadStart) +- [Reverse](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#Reverse) +- [SnakeCase](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#SnakeCase) +- [SplitEx](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#SplitEx) +- [Wrap](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#Wrap) +- [Unwrap](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#Unwrap) -### 18. system包含os, runtime, shell command相关函数。 +### 18. system 包含 os, runtime, shell command 相关函数。 ```go import "github.com/duke-git/lancet/v2/system" ``` #### 函数列表: -- [IsWindows](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#IsWindows) -- [IsLinux](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#IsLinux) -- [IsMac](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#IsMac) -- [GetOsEnv](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#GetOsEnv) -- [SetOsEnv](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#SetOsEnv) -- [RemoveOsEnv](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#RemoveOsEnv) -- [CompareOsEnv](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#CompareOsEnv) -- [ExecCommand](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#ExecCommand) -- [GetOsBits](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#GetOsBits) -### 19. validator验证器包,包含常用字符串格式验证函数。 +- [IsWindows](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#IsWindows) +- [IsLinux](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#IsLinux) +- [IsMac](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#IsMac) +- [GetOsEnv](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#GetOsEnv) +- [SetOsEnv](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#SetOsEnv) +- [RemoveOsEnv](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#RemoveOsEnv) +- [CompareOsEnv](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#CompareOsEnv) +- [ExecCommand](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#ExecCommand) +- [GetOsBits](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN.md#GetOsBits) + +### 19. validator 验证器包,包含常用字符串格式验证函数。 ```go import "github.com/duke-git/lancet/v2/validator" ``` + #### 函数列表: -- [ContainChinese](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#ContainChinese) -- [ContainLetter](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#ContainLetter) -- [ContainLower](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#ContainLower) -- [ContainUpper](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#ContainUpper) -- [IsAlpha](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsAlpha) -- [IsAllUpper](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsAllUpper) -- [IsAllLower](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsAllLower) -- [IsBase64](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsBase64) -- [IsChineseMobile](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsChineseMobile) -- [IsChineseIdNum](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsChineseIdNum) -- [IsChinesePhone](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsChinesePhone) -- [IsCreditCard](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsCreditCard) -- [IsDns](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsDns) -- [IsEmail](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsEmail) -- [IsEmptyString](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsEmptyString) -- [IsFloatStr](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsFloatStr) -- [IsNumberStr](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsNumberStr) -- [IsJSON](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsJSON) -- [IsRegexMatch](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsRegexMatch) -- [IsIntStr](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsIntStr) -- [IsIp](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsIp) -- [IsIpV4](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsIpV4) -- [IsIpV6](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsIpV6) -- [IsStrongPassword](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsStrongPassword) -- [IsUrl](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsUrl) -- [IsWeakPassword](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsWeakPassword) -- [IsZeroValue](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsZeroValue) +- [ContainChinese](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#ContainChinese) +- [ContainLetter](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#ContainLetter) +- [ContainLower](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#ContainLower) +- [ContainUpper](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#ContainUpper) +- [IsAlpha](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsAlpha) +- [IsAllUpper](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsAllUpper) +- [IsAllLower](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsAllLower) +- [IsBase64](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsBase64) +- [IsChineseMobile](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsChineseMobile) +- [IsChineseIdNum](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsChineseIdNum) +- [IsChinesePhone](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsChinesePhone) +- [IsCreditCard](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsCreditCard) +- [IsDns](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsDns) +- [IsEmail](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsEmail) +- [IsEmptyString](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsEmptyString) +- [IsFloatStr](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsFloatStr) +- [IsNumberStr](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsNumberStr) +- [IsJSON](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsJSON) +- [IsRegexMatch](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsRegexMatch) +- [IsIntStr](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsIntStr) +- [IsIp](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsIp) +- [IsIpV4](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsIpV4) +- [IsIpV6](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsIpV6) +- [IsStrongPassword](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsStrongPassword) +- [IsUrl](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsUrl) +- [IsWeakPassword](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsWeakPassword) +- [IsZeroValue](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsZeroValue) -### 20. xerror包实现一些错误处理函数 +### 20. xerror 包实现一些错误处理函数 ```go import "github.com/duke-git/lancet/v2/xerror" ``` + #### 函数列表: -- [Unwrap](https://github.com/duke-git/lancet/blob/main/docs/xerror_zh-CN.md#Unwrap) + +- [Unwrap](https://github.com/duke-git/lancet/blob/main/docs/xerror_zh-CN.md#Unwrap) ## 如何贡献代码 -非常感激任何的代码提交以使lancet的功能越来越强大。创建pull request时请遵守以下规则。 +非常感激任何的代码提交以使 lancet 的功能越来越强大。创建 pull request 时请遵守以下规则。 -1. Fork lancet仓库。 +1. Fork lancet 仓库。 2. 创建自己的特性分支。 3. 提交变更。 -4. Push分支。 -5. 创建新的pull request。 +4. Push 分支。 +5. 创建新的 pull request。