关于网站建设的问题,seo课程培训要多少钱,常德网站建设wynet123,怎么做网站登陆战支持300常用功能的开源GO语言工具函数库–Lancet lancet#xff08;柳叶刀#xff09;是一个全面、高效、可复用的go语言工具函数库。lancet受到了java apache common包和lodash.js的启发。 特性
全面、高效、可复用300常用go工具函数#xff0c;支持string、slice、dateti…支持300常用功能的开源GO语言工具函数库–Lancet lancet柳叶刀是一个全面、高效、可复用的go语言工具函数库。lancet受到了java apache common包和lodash.js的启发。 特性
全面、高效、可复用300常用go工具函数支持string、slice、datetime、net、crypt…只依赖go标准库所有导出函数单元测试覆盖率100%
安装
1、对于使用go1.18及以上的用户建议安装v2.x.x。因为v2.x.x用go1.18的泛型重写了大部分函数。
go get github.com/duke-git/lancet/v2 //安装v2最新版本v2.x.x2、使用go1.18以下版本的用户必须安装v1.x.x。目前最新的v1版本是v1.2.9。
go get github.com/duke-git/lancetv1.2.9 // 使用go1.18以下版本, 必须安装v1.x.x版本用法
lancet是以包的结构组织代码的使用时需要导入相应的包名。例如如果使用字符串相关函数需要导入strutil包
import github.com/duke-git/lancet/v2/strutil此处以字符串工具函数ReverseStr逆序字符串为例需要导入strutil包
package mainimport (fmtgithub.com/duke-git/lancet/v2/strutil
)func main() {s : hellors : strutil.ReverseStr(s)fmt.Println(rs) //olleh
}算法包
algorithm算法包实现一些基本算法。例如sort、search、lrucache等。
import ( github.com/duke-git/lancet/v2/algorithm)示例BubbleSort
冒泡排序参数comparator需要实现包 lancetconstraints.Comparator
函数签名
func BubbleSort[T any](slice []T, comparator lancetconstraints.Comparator)Example
package mainimport (fmtgithub.com/duke-git/lancet/v2/algorithm
)func main() {type intComparator struct{}func (c *intComparator) Compare(v1 any, v2 any) int {val1, _ : v1.(int)val2, _ : v2.(int)//ascending orderif val1 val2 {return -1} else if val1 val2 {return 1}return 0}intSlice : []int{2, 1, 5, 3, 6, 4}comparator : intComparator{}algorithm.BubbleSort(intSlice, comparator)fmt.Println(intSlice) //[]int{1, 2, 3, 4, 5, 6}
}并发包
并发包包含一些支持并发编程的功能。例如goroutine、channel、async等。
import github.com/duke-git/lancet/v2/concurrency示例NewChannel
返回一个 Channel 指针实例
函数签名 type Channel struct {}
func NewChannel() *ChannelExample
package mainimport (fmtgithub.com/duke-git/lancet/v2/concurrency
)func main() {c : concurrency.NewChannel()
}转换器包
convertor转换器包支持一些常见的数据类型转换。
import github.com/duke-git/lancet/v2/convertor示例ToBool
字符串转布尔类型使用strconv.ParseBool
函数签名
func ToBool(s string) (bool, error)Example package mainimport (fmtgithub.com/duke-git/lancet/v2/convertor
)func main() {v1, _ : convertor.ToBool(1)fmt.Println(v1) //truev2, _ : convertor.ToBool(true)fmt.Println(v2) //truev3, _ : convertor.ToBool(True)fmt.Println(v3) //truev4, _ : convertor.ToBool(123)fmt.Println(v4) //false
}加密包
cryptor加密包支持数据加密和解密获取md5hash值。支持base64、md5、hmac、aes、des、rsa。
import github.com/duke-git/lancet/v2/cryptor示例AesEcbEncrypt
使用AES ECB算法模式加密数据. 参数key的长度是16, 24 or 32。
函数签名
func AesEcbEncrypt(data, key []byte) []byteExample
package mainimport (fmtgithub.com/duke-git/lancet/v2/cryptor
)func main() {data : hello worldkey : abcdefghijklmnopencrypted : cryptor.AesEcbEncrypt([]byte(data), []byte(key))fmt.Println(string(encrypted))
}ps根据需要选择性使用不要本末倒置。更多用法去下面的开源地址或官网api中寻找。
开源协议MIT
开源地址https://github.com/duke-git/lancet 官网地址https://www.golancet.cn