golang扩展包go-funk

golang  

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


评论 0

发表评论

Top