golang扩展包go-funk
- Go
- 2020-10-28
- 146
- 0
go-funk扩展包—针对于slice/map/struct/string等操作
- 引入包
go get github.com/thoas/go-funk
- funk.Contains
判断指定string/int是否存在于对应的slice/map/string中,字符串可以模糊匹配
- funk.Intersect
返回两个slice的交集数据
- funk.Difference
返回两个slice的差集
- funk.IndexOf
返回在slice/string中指定数据的下标,没有返回 -1
- funk.LastIndexOf
返回在slice/string中指定数据的最下标(取最后一个),没有返回 -1
- funk.ToMap
将slice里面的struct,根据struct中指定的属性,重新组装成一个新的map
- funk.Filter
过滤slice中不符合要求的数据,条件闭包函数中自己设定并返回bool
- funk.Find
获取slice中符合条件的数据,条件闭包函数中自己设定并返回bool
- funk.Map
对slice/map循环通过闭包函数并返回对应的值,可以map与slice随意转换
- funk.Get
获取struct中指定路劲的值,路劲: a.b.c 进行获取,该方法在最新版本包中没有发现该方法
- funk.GetOrElse
获取一个变量的值,如果不存在则返回默认值
- funk.Set
根据路劲进行赋值,路劲: a.b.c 同样在包中没有发现该方法
- funk.MustSet
使用Set方法进行赋值之前,可以使用该方法设置如果字段属性不存在则丢弃错误信息
- funk.Prune
对两个struct的指定的属性合并,在传入struct的零值基础上返回
- funk.PruneByTag
使用struct后面tags进行对两个struct合并,与funk.Prune功能类似
- funk.Keys
返回slice/struct/array中的key
- funk.Values
返回slice/struct/array中对应值,返回一个[]interface{}类型数据
- funk.ForEachRight
遍历slice/map右边的值,需要闭包操作
- funk.Chunk
对数组按指定的数量进行切割
- funk.FlattenDeep
对多维数组合并成一维数组
- funk.Uniq
数组按值去重
- funk.Initial
去除数组中的最后一个元素并返回
- funk.Tail
去除数组中第一个元素并返回
- funk.Shuffle
将数组中的顺序打乱并返回
- funk.Subtract
去除指定数组中包含的值,并按原先的顺序返回
- funk.Sum
返回数组中整数的和
- funk.Reverse
将数组按倒序排序并返回
- func.SliceOf
将一个struct按slice返回
- func.RandomInt
返回最小数-最大数中的随机数
- funk.RandomString
返回指定长度的随机字符
- funk.Shard
按指定数量对字符串进行切割并返回slice
- funk.Subset
判断一个slice中的所有元素是否被另一个元素全部包含返回 bool