lancet(柳叶刀)是一个全面、高效、可复用的go语言工具函数库。 lancet受到了java apache common包和lodash.js的启发。
## 官网 | [English](./README.md) ## 特性 - 👏 全面、高效、可复用。 - 💪 600+常用 go 工具函数,支持 string、slice、datetime、net、crypt... - 💅 只依赖 go 标准库和 golang.org/x。 - 🌍 所有导出函数单元测试覆盖率 100%。 ## 安装 ### 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.4.1。 ```go go get github.com/duke-git/lancet// 使用go1.18以下版本, 必须安装v1.x.x版本 ``` ## 用法 lancet 是以包的结构组织代码的,使用时需要导入相应的包名。例如:如果使用字符串相关函数,需要导入 strutil 包: ```go import "github.com/duke-git/lancet/v2/strutil" ``` ## 示例 此处以字符串工具函数 Reverse(逆序字符串)为例,需要导入 strutil 包: ```go package main import ( "fmt" "github.com/duke-git/lancet/v2/strutil" ) func main() { s := "hello" rs := strutil.Reverse(s) fmt.Println(rs) //olleh } ``` ## 文档 ### 目录 - [Algorithm](#user-content-algorithm) - [Compare](#user-content-compare) - [Concurrency](#user-content-concurrency) - [Condition](#user-content-condition) - [Convertor](#user-content-convertor) - [Cryptor](#user-content-cryptor) - [Datetime](#user-content-datetime) - [Datastructure](#user-content-datastructure) - [Fileutil](#user-content-fileutil) - [Formatter](#user-content-formatter) - [Function](#user-content-function) - [Maputil](#user-content-maputil) - [Mathutil](#user-content-mathutil) - [Netutil](#user-content-netutil) - [Pointer](#user-content-pointer) - [Random](#user-content-random) - [Retry](#user-content-retry) - [Slice](#user-content-slice) - [Stream](#user-content-stream) - [Structs](#user-content-structs) - [Strutil](#user-content-strutil) - [System](#user-content-system) - [Tuple](#user-content-tuple) - [Validator](#user-content-validator) - [Xerror](#user-content-xerror)