From 581e338889b2e2441ef02d862b98f7d3afba506a Mon Sep 17 00:00:00 2001 From: dudaodong Date: Wed, 26 Apr 2023 14:31:47 +0800 Subject: [PATCH] doc: add new function to readme file --- README.md | 101 ++++++++++++++++++++++++++++++++++++----------- README_zh-CN.md | 103 +++++++++++++++++++++++++++++++++++++----------- 2 files changed, 157 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index 595e661..560015c 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,28 @@ import "github.com/duke-git/lancet/v2/algorithm" [[doc](https://github.com/duke-git/lancet/blob/main/docs/algorithm.md#LRUCache)] [[play](https://go.dev/play/p/-EZjgOURufP)] -### 2. Concurrency package contain some functions to support concurrent programming. eg, goroutine, channel, async. +### 2. Compare package provides a lightweight comparison function on any type. + +```go +import "github.com/duke-git/lancet/v2/compare" +``` + +#### Function list: + +- **Equal** : Checks if two values are equal or not. (check both type and value) + [[doc](https://github.com/duke-git/lancet/blob/main/docs/compare.md#Equal)] +- **EqualValue** : Checks if two values are equal or not. (check value only) + [[doc](https://github.com/duke-git/lancet/blob/main/docs/compare.md#EqualValue)] +- **LessThan** : Checks if value `left` less than value `right`. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/compare.md#LessThan)] +- **GreaterThan** : Checks if value `left` greater than value `right`. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/compare.md#GreaterThan)] +- **LessOrEqual** : Checks if value `left` less than or equal than value `right`. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/compare.md#LessOrEqual)] +- **GreaterOrEqual** : Checks if value `left` less greater or equal than value `right`. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/compare.md#GreaterOrEqual)] + +### 3. Concurrency package contain some functions to support concurrent programming. eg, goroutine, channel, async. ```go import "github.com/duke-git/lancet/v2/concurrency" @@ -157,7 +178,7 @@ import "github.com/duke-git/lancet/v2/concurrency" [[doc](https://github.com/duke-git/lancet/blob/main/docs/concurrency.md#Tee)] [[play](https://go.dev/play/p/3TQPKnCirrP)] -### 3. Condition package contains some functions for conditional judgment. eg. And, Or, TernaryOperator... +### 4. Condition package contains some functions for conditional judgment. eg. And, Or, TernaryOperator... ```go import "github.com/duke-git/lancet/v2/condition" @@ -190,7 +211,7 @@ import "github.com/duke-git/lancet/v2/condition" [[doc](https://github.com/duke-git/lancet/blob/main/docs/condition.md#TernaryOperator)] [[play](https://go.dev/play/p/ElllPZY0guT)] -### 4. Convertor package contains some functions for data convertion. +### 5. Convertor package contains some functions for data convertion. ```go import "github.com/duke-git/lancet/v2/convertor" @@ -253,7 +274,7 @@ import "github.com/duke-git/lancet/v2/convertor" [[doc](https://github.com/duke-git/lancet/blob/main/docs/convertor.md#CopyProperties)] [[play](https://go.dev/play/p/FOVY3XJL-6B)] -### 5. Cryptor package is for data encryption and decryption. +### 6. Cryptor package is for data encryption and decryption. ```go import "github.com/duke-git/lancet/v2/cryptor" @@ -357,7 +378,7 @@ import "github.com/duke-git/lancet/v2/cryptor" [[doc](https://github.com/duke-git/lancet/blob/main/docs/cryptor.md#RsaDecrypt)] [[play](https://go.dev/play/p/uef0q1fz53I)] -### 6. Datetime package supports date and time format and compare. +### 7. Datetime package supports date and time format and compare. ```go import "github.com/duke-git/lancet/v2/datetime" @@ -456,7 +477,7 @@ import "github.com/duke-git/lancet/v2/datetime" [[doc](https://github.com/duke-git/lancet/blob/main/docs/datetime.md#ToIso8601)] [[play](https://go.dev/play/p/mkhOHQkdeA2)] -### 7. Datastructure package constains some common data structure. eg. list, linklist, stack, queue, set, tree, graph. +### 8. 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" @@ -488,7 +509,7 @@ import hashmap "github.com/duke-git/lancet/v2/datastructure/hashmap" - **Hashmap** : hash map structure. [[doc](https://github.com/duke-git/lancet/blob/main/docs/datastructure/hashmap.md)] -### 8. Fileutil package implements some basic functions for file operations. +### 9. Fileutil package implements some basic functions for file operations. ```go import "github.com/duke-git/lancet/v2/fileutil" @@ -544,8 +565,18 @@ import "github.com/duke-git/lancet/v2/fileutil" - **CurrentPath** : return current absolute path. [[doc](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#CurrentPath)] [[play](https://go.dev/play/p/s74a9iBGcSw)] +- **IsZipFile** : checks if file is zip file or not. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#IsZipFile)] +- **FileSize** : return file size in bytes. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#FileSize)] +- **MTime** : return file modified time(unix timestamp). + [[doc](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#MTime)] +- **Sha** : return file sha value. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#Sha)] +- **ReadCsvFile** : read file content into slice. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/fileutil.md#ReadCsvFile)] -### 9. Formatter contains some functions for data formatting. +### 10. Formatter contains some functions for data formatting. ```go import "github.com/duke-git/lancet/v2/formatter" @@ -575,7 +606,7 @@ import "github.com/duke-git/lancet/v2/formatter" [[doc](https://github.com/duke-git/lancet/blob/main/docs/formatter.md#ParseBinaryBytes)] [[play](https://go.dev/play/p/69v1tTT62x8)] -### 10. Function package can control the flow of function execution and support part of functional programming +### 11. Function package can control the flow of function execution and support part of functional programming ```go import "github.com/duke-git/lancet/v2/function" @@ -611,7 +642,7 @@ import "github.com/duke-git/lancet/v2/function" [[doc](https://github.com/duke-git/lancet/blob/main/docs/function.md#Watcher)] [[play](https://go.dev/play/p/l2yrOpCLd1I)] -### 11. Maputil package includes some functions to manipulate map. +### 12. Maputil package includes some functions to manipulate map. ```go import "github.com/duke-git/lancet/v2/maputil" @@ -683,7 +714,7 @@ import "github.com/duke-git/lancet/v2/maputil" [[doc](https://github.com/duke-git/lancet/blob/main/docs/maputil.md#IsDisjoint)] [[play](https://go.dev/play/p/N9qgYg_Ho6f)] -### 12. Mathutil package implements some functions for math calculation. +### 13. Mathutil package implements some functions for math calculation. ```go import "github.com/duke-git/lancet/v2/mathutil" @@ -746,7 +777,7 @@ import "github.com/duke-git/lancet/v2/mathutil" [[doc](https://github.com/duke-git/lancet/blob/main/docs/mathutil.md#IsPrime)] [[play](https://go.dev/play/p/Rdd8UTHZJ7u)] -### 13. Netutil package contains functions to get net information and send http request. +### 14. Netutil package contains functions to get net information and send http request. ```go import "github.com/duke-git/lancet/v2/netutil" @@ -808,8 +839,16 @@ import "github.com/duke-git/lancet/v2/netutil" [[doc](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#HttpPatch)] - **ParseHttpResponse** : decode http response into target object. [[doc](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#ParseHttpResponse)] +- **DownloadFile** : download the file exist in url to a local file. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#DownloadFile)] +- **UploadFile** : upload the file to a server. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#UploadFile)] +- **IsPingConnected** : checks if can ping the specified host or not. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#IsPingConnected)] +- **IsTelnetConnected** : checks if can if can telnet the specified host or not. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/netutil.md#IsTelnetConnected)] -### 14. Random package implements some basic functions to generate random int and string. +### 15. Random package implements some basic functions to generate random int and string. ```go import "github.com/duke-git/lancet/v2/random" @@ -842,7 +881,7 @@ import "github.com/duke-git/lancet/v2/random" [[doc](https://github.com/duke-git/lancet/blob/main/docs/random.md#UUIdV4)] [[play](https://go.dev/play/p/_Z9SFmr28ft)] -### 15. Retry package is for executing a function repeatedly until it was successful or canceled by the context. +### 16. Retry package is for executing a function repeatedly until it was successful or canceled by the context. ```go import "github.com/duke-git/lancet/v2/retry" @@ -866,7 +905,7 @@ import "github.com/duke-git/lancet/v2/retry" [[doc](https://github.com/duke-git/lancet/blob/main/docs/retry.md#RetryTimes)] [[play](https://go.dev/play/p/ssfVeU2SwLO)] -### 16. Slice contains some functions to manipulate slice. +### 17. Slice contains some functions to manipulate slice. ```go import "github.com/duke-git/lancet/v2/slice" @@ -940,12 +979,16 @@ import "github.com/duke-git/lancet/v2/slice" - **FilterMap** : returns a slice which apply both filtering and mapping to the given slice. [[doc](https://github.com/duke-git/lancet/blob/main/docs/slice.md#FilterMap)] [[play](https://go.dev/play/p/J94SZ_9MiIe)] -- **Find** : iterates over elements of slice, returning the first one that passes a truth test on predicate function. +- **Finddeprecated** : iterates over elements of slice, returning the first one that passes a truth test on predicate function. [[doc](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Find)] [[play](https://go.dev/play/p/CBKeBoHVLgq)] -- **FindLast** : return the last item that passes a truth test on predicate function. +- **FindBy** : iterates over elements of slice, returning the first one that passes a truth test on predicate function. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/slice.md#FindBy)] +- **FindLastdeprecated** : return the last item that passes a truth test on predicate function. [[doc](https://github.com/duke-git/lancet/blob/main/docs/slice.md#FindLast)] [[play](https://go.dev/play/p/FFDPV_j7URd)] +- **FindLastBy** : iterates over elements of slice, returning the last one that passes a truth test on predicate function. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/slice.md#FindLastBy)] - **Flatten** : flattens slice one level. [[doc](https://github.com/duke-git/lancet/blob/main/docs/slice.md#Flatten)] [[play](https://go.dev/play/p/hYa3cBEevtm)] @@ -1073,7 +1116,7 @@ import "github.com/duke-git/lancet/v2/slice" [[doc](https://github.com/duke-git/lancet/blob/main/docs/slice.md#KeyBy)] [[play](https://go.dev/play/p/uXod2LWD1Kg)] -### 17. Stream package implements a sequence of elements supporting sequential and operations. this package is an experiment to explore if stream in go can work as the way java does. its function is very limited. +### 18. Stream package implements a sequence of elements supporting sequential and operations. this package is an experiment to explore if stream in go can work as the way java does. its function is very limited. ```go import "github.com/duke-git/lancet/v2/stream" @@ -1157,7 +1200,7 @@ import "github.com/duke-git/lancet/v2/stream" [[doc](https://github.com/duke-git/lancet/blob/main/docs/stream.md#ToSlice)] [[play](https://go.dev/play/p/jI6_iZZuVFE)] -### 18. Structs package provides several high level functions to manipulate struct, tag, and field. +### 19. Structs package provides several high level functions to manipulate struct, tag, and field. ```go import "github.com/duke-git/lancet/v2/structs" @@ -1190,7 +1233,7 @@ import "github.com/duke-git/lancet/v2/structs" - **IsSlice** : check if the field is a slice [[doc](https://github.com/duke-git/lancet/blob/main/docs/structs/field.md#IsSlice)] -### 19. Strutil package contains some functions to manipulate string. +### 20. Strutil package contains some functions to manipulate string. ```go import "github.com/duke-git/lancet/v2/strutil" @@ -1269,8 +1312,20 @@ import "github.com/duke-git/lancet/v2/strutil" - **RemoveNonPrintable** : remove non-printable characters from a string. [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#RemoveNonPrintable)] [[play](https://go.dev/play/p/og47F5x_jTZ)] +- **StringToBytes** : converts a string to byte slice without a memory allocation. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#StringToBytes)] +- **BytesToString** : converts a byte slice to string without a memory allocation. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#BytesToString)] +- **IsBlank** : checks if a string is whitespace or empty. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#IsBlank)] +- **HasPrefixAny** : checks if a string starts with any of an array of specified strings. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#HasPrefixAny)] +- **HasSuffixAny** : checks if a string ends with any of an array of specified strings. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#HasSuffixAny)] +- **IndexOffset** : returns the index of the first instance of substr in string after offsetting the string by `idxFrom`. + [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil.md#IndexOffset)] -### 20. System package contain some functions about os, runtime, shell command. +### 21. System package contain some functions about os, runtime, shell command. ```go import "github.com/duke-git/lancet/v2/system" @@ -1306,7 +1361,7 @@ import "github.com/duke-git/lancet/v2/system" [[doc](https://github.com/duke-git/lancet/blob/main/docs/system.md#GetOsBits)] [[play](https://go.dev/play/p/ml-_XH3gJbW)] -### 21. Validator package contains some functions for data validation. +### 22. Validator package contains some functions for data validation. ```go import "github.com/duke-git/lancet/v2/validator" @@ -1414,7 +1469,7 @@ import "github.com/duke-git/lancet/v2/validator" [[doc](https://github.com/duke-git/lancet/blob/main/docs/validator.md#IsPrintable)] [[play](https://go.dev/play/p/Pe1FE2gdtTP)] -### 22. xerror package implements helpers for errors. +### 23. xerror package implements helpers for errors. ```go import "github.com/duke-git/lancet/v2/xerror" diff --git a/README_zh-CN.md b/README_zh-CN.md index 9121115..b5c805a 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -117,7 +117,28 @@ import "github.com/duke-git/lancet/v2/algorithm" [[doc](https://github.com/duke-git/lancet/blob/main/docs/algorithm_zh-CN.md#LRUCache)] [[play](https://go.dev/play/p/-EZjgOURufP)] -### 2. concurrency 包含一些支持并发编程的功能。例如:goroutine, channel, async 等。 +### 2. compare 包提供几个轻量级的类型比较函数。 + +```go +import "github.com/duke-git/lancet/v2/compare" +``` + +#### Function list: + +- **Equal** : 检查两个值是否相等(检查类型和值)。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/compare_zh-CN.md#Equal)] +- **EqualValue** : 检查两个值是否相等(只检查值)。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/compare_zh-CN.md#EqualValue)] +- **LessThan** : 验证参数`left`的值是否小于参数`right`的值。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/compare_zh-CN.md#LessThan)] +- **GreaterThan** : 验证参数`left`的值是否大于参数`right`的值。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/compare_zh-CN.md#GreaterThan)] +- **LessOrEqual** : 验证参数`left`的值是否小于或等于参数`right`的值。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/compare_zh-CN.md#LessOrEqual)] +- **GreaterOrEqual** : 验证参数`left`的值是否大于或等于参数`right`的值。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/compare_zh-CN.md#GreaterOrEqual)] + +### 3. concurrency 包含一些支持并发编程的功能。例如:goroutine, channel, async 等。 ```go import "github.com/duke-git/lancet/v2/concurrency" @@ -156,7 +177,7 @@ import "github.com/duke-git/lancet/v2/concurrency" [[doc](https://github.com/duke-git/lancet/blob/main/docs/concurrency_zh-CN.md#Tee)] [[play](https://go.dev/play/p/3TQPKnCirrP)] -### 3. condition 包含一些用于条件判断的函数。 +### 4. condition 包含一些用于条件判断的函数。 ```go import "github.com/duke-git/lancet/v2/condition" @@ -189,7 +210,7 @@ import "github.com/duke-git/lancet/v2/condition" [[doc](https://github.com/duke-git/lancet/blob/main/docs/condition_zh-CN.md#TernaryOperator)] [[play](https://go.dev/play/p/ElllPZY0guT)] -### 4. convertor 转换器包支持一些常见的数据类型转换。 +### 5. convertor 转换器包支持一些常见的数据类型转换。 ```go import "github.com/duke-git/lancet/v2/convertor" @@ -252,7 +273,7 @@ import "github.com/duke-git/lancet/v2/convertor" [[doc](https://github.com/duke-git/lancet/blob/main/docs/convertor_zh-CN.md#CopyProperties)] [[play](https://go.dev/play/p/FOVY3XJL-6B)] -### 5. cryptor 加密包支持数据加密和解密,获取 md5,hash 值。支持 base64, md5, hmac, aes, des, rsa。 +### 6. cryptor 加密包支持数据加密和解密,获取 md5,hash 值。支持 base64, md5, hmac, aes, des, rsa。 ```go import "github.com/duke-git/lancet/v2/cryptor" @@ -356,7 +377,7 @@ import "github.com/duke-git/lancet/v2/cryptor" [[doc](https://github.com/duke-git/lancet/blob/main/docs/cryptor_zh-CN.md#RsaDecrypt)] [[play](https://go.dev/play/p/uef0q1fz53I)] -### 6. datetime 日期时间处理包,格式化日期,比较日期。 +### 7. datetime 日期时间处理包,格式化日期,比较日期。 ```go import "github.com/duke-git/lancet/v2/datetime" @@ -455,7 +476,7 @@ import "github.com/duke-git/lancet/v2/datetime" [[doc](https://github.com/duke-git/lancet/blob/main/docs/datetime_zh-CN.md#ToIso8601)] [[play](https://go.dev/play/p/mkhOHQkdeA2)] -### 7. datastructure 包含一些普通的数据结构实现。例如:list, linklist, stack, queue, set, tree, graph. +### 8. datastructure 包含一些普通的数据结构实现。例如:list, linklist, stack, queue, set, tree, graph. ```go import list "github.com/duke-git/lancet/v2/datastructure/list" @@ -487,7 +508,7 @@ import hashmap "github.com/duke-git/lancet/v2/datastructure/hashmap" - **Hashmap** : 哈希映射。 [[doc](https://github.com/duke-git/lancet/blob/main/docs/datastructure/hashmap_zh-CN.md)] -### 8. fileutil 包含文件基本操作。 +### 9. fileutil 包含文件基本操作。 ```go import "github.com/duke-git/lancet/v2/fileutil" @@ -543,8 +564,18 @@ import "github.com/duke-git/lancet/v2/fileutil" - **CurrentPath** : 返回当前位置的绝对路径。 [[doc](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#CurrentPath)] [[play](https://go.dev/play/p/s74a9iBGcSw)] +- **IsZipFile** : 判断文件是否是zip压缩文件。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#IsZipFile)] +- **FileSize** : 返回文件字节大小。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#FileSize)] +- **MTime** : 返回文件修改时间(unix timestamp)。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#MTime)] +- **Sha** : 返回文件sha值。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#Sha)] +- **ReadCsvFile** : 读取csv文件内容到切片。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/fileutil_zh-CN.md#ReadCsvFile)] -### 9. formatter 格式化器包含一些数据格式化处理方法。 +### 10. formatter 格式化器包含一些数据格式化处理方法。 ```go import "github.com/duke-git/lancet/v2/formatter" @@ -574,7 +605,7 @@ import "github.com/duke-git/lancet/v2/formatter" [[doc](https://github.com/duke-git/lancet/blob/main/docs/formatter_zh-CN.md#ParseBinaryBytes)] [[play](https://go.dev/play/p/69v1tTT62x8)] -### 10. function 函数包控制函数执行流程,包含部分函数式编程。 +### 11. function 函数包控制函数执行流程,包含部分函数式编程。 ```go import "github.com/duke-git/lancet/v2/function" @@ -610,7 +641,7 @@ import "github.com/duke-git/lancet/v2/function" [[doc](https://github.com/duke-git/lancet/blob/main/docs/function_zh-CN.md#Watcher)] [[play](https://go.dev/play/p/l2yrOpCLd1I)] -### 11. maputil 包括一些操作 map 的函数. +### 12. maputil 包括一些操作 map 的函数. ```go import "github.com/duke-git/lancet/v2/maputil" @@ -682,7 +713,7 @@ import "github.com/duke-git/lancet/v2/maputil" [[doc](https://github.com/duke-git/lancet/blob/main/docs/maputil_zh-CN.md#IsDisjoint)] [[play](https://go.dev/play/p/N9qgYg_Ho6f)] -### 12. mathutil 包实现了一些数学计算的函数。 +### 13. mathutil 包实现了一些数学计算的函数。 ```go import "github.com/duke-git/lancet/v2/mathutil" @@ -745,7 +776,7 @@ import "github.com/duke-git/lancet/v2/mathutil" [[doc](https://github.com/duke-git/lancet/blob/main/docs/mathutil_zh-CN.md#IsPrime)] [[play](https://go.dev/play/p/Rdd8UTHZJ7u)] -### 13. netutil 网络包支持获取 ip 地址,发送 http 请求。 +### 14. netutil 网络包支持获取 ip 地址,发送 http 请求。 ```go import "github.com/duke-git/lancet/v2/netutil" @@ -805,10 +836,18 @@ import "github.com/duke-git/lancet/v2/netutil" [[doc](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#HttpPut)] - **HttpPatchdeprecated** : 发送 http patch 请求(已弃用:SendRequest 代替)。 [[doc](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#HttpPatch)] -- **ParseHttpResponse** : 解析 http 响应体到目标结构体。 +- **ParseHttpResponse** : 解析http响应体到目标结构体。 [[doc](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#ParseHttpResponse)] +- **DownloadFile** : 从指定的server地址下载文件。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#DownloadFile)] +- **UploadFile** : 将文件上传指定的server地址。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#UploadFile)] +- **IsPingConnected** : 检查能否ping通主机。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#IsPingConnected)] +- **IsTelnetConnected** : 检查能否telnet到主机。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/netutil_zh-CN.md#IsTelnetConnected)] -### 14. random 随机数生成器包,可以生成随机[]bytes, int, string。 +### 15. random 随机数生成器包,可以生成随机[]bytes, int, string。 ```go import "github.com/duke-git/lancet/v2/random" @@ -841,7 +880,7 @@ import "github.com/duke-git/lancet/v2/random" [[doc](https://github.com/duke-git/lancet/blob/main/docs/random_zh-CN.md#UUIdV4)] [[play](https://go.dev/play/p/_Z9SFmr28ft)] -### 15. retry 重试执行函数直到函数运行成功或被 context cancel。 +### 16. retry 重试执行函数直到函数运行成功或被 context cancel。 ```go import "github.com/duke-git/lancet/v2/retry" @@ -865,7 +904,7 @@ import "github.com/duke-git/lancet/v2/retry" [[doc](https://github.com/duke-git/lancet/blob/main/docs/retry_zh-CN.md#RetryTimes)] [[play](https://go.dev/play/p/ssfVeU2SwLO)] -### 16. slice 包含操作切片的方法集合。 +### 17. slice 包含操作切片的方法集合。 ```go import "github.com/duke-git/lancet/v2/slice" @@ -939,12 +978,16 @@ import "github.com/duke-git/lancet/v2/slice" - **FilterMap** : 返回一个将 filter 和 map 操作应用于给定切片的切片。 [[doc](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#FilterMap)] [[play](https://go.dev/play/p/J94SZ_9MiIe)] -- **Find** : 遍历切片的元素,返回第一个通过 predicate 函数真值测试的元素。 +- **Finddeprecated** : 遍历切片的元素,返回第一个通过 predicate 函数真值测试的元素。 [[doc](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Find)] [[play](https://go.dev/play/p/CBKeBoHVLgq)] -- **FindLast** : 从头到尾遍历 slice 的元素,返回最后一个通过 predicate 函数真值测试的元素。 +- **FindBy** : 遍历切片的元素,返回第一个通过 predicate 函数真值测试的元素。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#FindBy)] +- **FindLastdeprecated** : 从头到尾遍历 slice 的元素,返回最后一个通过 predicate 函数真值测试的元素。 [[doc](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#FindLast)] [[play](https://go.dev/play/p/FFDPV_j7URd)] +- **FindLastBy** : 从遍历slice的元素,返回最后一个通过predicate函数真值测试的元素。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#FindLastBy)] - **Flatten** : 将多维切片展平一层。 [[doc](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#Flatten)] [[play](https://go.dev/play/p/hYa3cBEevtm)] @@ -1072,7 +1115,7 @@ import "github.com/duke-git/lancet/v2/slice" [[doc](https://github.com/duke-git/lancet/blob/main/docs/slice_zh-CN.md#KeyBy)] [[play](https://go.dev/play/p/uXod2LWD1Kg)] -### 17. Stream 流,该包仅验证简单的 stream 实现,功能有限。 +### 18. Stream 流,该包仅验证简单的 stream 实现,功能有限。 ```go import "github.com/duke-git/lancet/v2/stream" @@ -1156,7 +1199,7 @@ import "github.com/duke-git/lancet/v2/stream" [[doc](https://github.com/duke-git/lancet/blob/main/docs/stream_zh-CN.md#ToSlice)] [[play](https://go.dev/play/p/jI6_iZZuVFE)] -### 18. structs 提供操作 struct, tag, field 的相关函数。 +### 19. structs 提供操作 struct, tag, field 的相关函数。 ```go import "github.com/duke-git/lancet/v2/structs" @@ -1191,7 +1234,7 @@ import "github.com/duke-git/lancet/v2/structs" - **IsSlice** : 判断属性是否是切片。 [[doc](https://github.com/duke-git/lancet/blob/main/docs/structs/field_zh-CN.md#IsSlice)] -### 19. strutil 包含字符串处理的相关函数。 +### 20. strutil 包含字符串处理的相关函数。 ```go import "github.com/duke-git/lancet/v2/strutil" @@ -1271,8 +1314,20 @@ import "github.com/duke-git/lancet/v2/strutil" - **RemoveNonPrintable** : 删除字符串中不可打印的字符。 [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#RemoveNonPrintable)] [[play](https://go.dev/play/p/og47F5x_jTZ)] +- **StringToBytes** : 在不分配内存的情况下将字符串转换为字节片。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#StringToBytes)] +- **BytesToString** : 在不分配内存的情况下将字节切片转换为字符串。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#BytesToString)] +- **IsBlank** : 检查字符串是否为空格或空。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#IsBlank)] +- **HasPrefixAny** : 检查字符串是否以指定字符串数组中的任何一个开头。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#HasPrefixAny)] +- **HasSuffixAny** : 检查字符串是否以指定字符串数组中的任何一个结尾。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#HasSuffixAny)] +- **IndexOffset** : 将字符串偏移idxFrom后,返回字符串中第一个 substr 实例的索引。 + [[doc](https://github.com/duke-git/lancet/blob/main/docs/strutil_zh-CN.md#IndexOffset)] -### 20. system 包含 os, runtime, shell command 的相关函数。 +### 21. system 包含 os, runtime, shell command 的相关函数。 ```go import "github.com/duke-git/lancet/v2/system" @@ -1308,7 +1363,7 @@ import "github.com/duke-git/lancet/v2/system" [[doc](https://github.com/duke-git/lancet/blob/main/docs/system_zh-CN#GetOsBits)] [[play](https://go.dev/play/p/ml-_XH3gJbW)] -### 21. validator 验证器包,包含常用字符串格式验证函数。 +### 22. validator 验证器包,包含常用字符串格式验证函数。 ```go import "github.com/duke-git/lancet/v2/validator" @@ -1416,7 +1471,7 @@ import "github.com/duke-git/lancet/v2/validator" [[doc](https://github.com/duke-git/lancet/blob/main/docs/validator_zh-CN.md#IsPrintable)] [[play](https://go.dev/play/p/Pe1FE2gdtTP)] -### 22. xerror 包实现一些错误处理函数 +### 23. xerror 包实现一些错误处理函数 ```go import "github.com/duke-git/lancet/v2/xerror"