🪡

数组|散列

操作切片

// 判断切片中是否存在指定值 func Contains(collection []T, v T) bool // 找出两个切片中的差异 func Diff(list1 []T, list2 []T) ([]T, []T) // 过滤切片 func Filter(slice []T, predicate func(index int, item T) bool) []T // 查询第一个匹配的切片 func Find(collection []T, predicate func(index int, item T) bool) (T, bool) // 从切片中随机取一个值 func Rand(collection []T) T // 打乱切片 func Shuffle(collection []T) []T // 切片去重 func Unique(collection []T) []T // 遍历切片返回一个新的切片 func Map(collection []T, iteratee func(int, *T) R) []R // 切割字符串,注意会去掉前后空格 func Slice[T comparable](s string,n ...int) []T // 合并数组成字符串,注意会忽略空格 func Join[T comparable](s []T, sep string) string

操作 Map

// 获取 Map 的全部 key 切片 func Keys(in map[K]V) []K // 获取 Map 的全部值切片 func Values(in map[K]V) []V
 

HashMap

并发安全,泛型,只支持 Go1.18 及以上
import ( "github.com/sohaha/zlsgo/zarray" ) m := zarray.NewHashMap[int, string]() // 设置 m.Set(1,"1") // 获取 v, ok := m.Get(1) // 获取,不存在则设置 v, ok := m.ProvideGet(1, func() (string, bool) { return "99", true }) // 删除 m.Delete(1)