github.com/songzhibin97/go-baseutils@v0.0.2-0.20240302024150-487d8ce9c082/base/bslice/README.md (about) 1 # bslice 2 3 ## API 4 5 ### AnyBSlice 6 7 - EqualFunc 传入一个slice以及比较函数判断两个slice是否相同 8 - CompareFunc 传入一个slice以及一个比较函数判断传入的slice与anyslice的大小关系 9 - IndexFunc 传入一个函数,返回第一个满足条件的下标 10 - Insert 指定index位置后插入若干元素 11 - InsertE 指定index位置后插入若干元素,如果插入失败返回错误 12 - Delete 指定start,end位置删除元素 s[i:j] 13 - DeleteE 指定start,end位置删除元素 s[i:j],如果删除失败返回错误 14 - DeleteToSlice 拷贝副本,指定start,end位置删除元素 s[i:j], 返回副本 15 - DeleteToSliceE 拷贝副本,指定start,end位置删除元素 s[i:j], 返回副本,如果删除失败返回错误 16 - DeleteToBSlice 拷贝副本,指定start,end位置删除元素 s[i:j], 返回副本初始化的anyslice 17 - DeleteToBSliceE 拷贝副本,指定start,end位置删除元素 s[i:j], 返回副本初始化的anyslice,如果删除失败返回错误 18 - Replace 指定start,end位置替换元素 s[i:j] 19 - ReplaceE 指定start,end位置替换元素 s[i:j],如果替换失败返回错误 20 - CloneToSlice 拷贝副本,返回副本 21 - CloneToBSlice 拷贝副本,返回副本初始化的anyslice 22 - CompactFunc 传入一个函数,返回true的元素会被删除,收缩slice 23 - Grow 增长底层数组容量 24 - GrowE 增长底层数组容量,如果增长失败返回错误 25 - Clip 删除数组中未使用的长度 26 - ForEach 传入一个函数,对slice中的每个元素执行函数 27 - SortFunc 传入一个函数,对slice进行排序 28 - SortFuncToSlice 拷贝副本,传入一个函数,对slice进行排序,返回副本 29 - SortFuncToBSlice 拷贝副本,传入一个函数,对slice进行排序,返回副本初始化的anyslice 30 - SortComparator 传入一个比较器,对slice进行排序 31 - SortComparatorToSlice 拷贝副本,传入一个比较器,对slice进行排序,返回副本 32 - SortComparatorToBSlice 拷贝副本,传入一个比较器,对slice进行排序,返回副本初始化的anyslice 33 - SortStableFunc 传入一个函数,对slice进行稳定排序 34 - SortStableFuncToSlice 拷贝副本,传入一个函数,对slice进行稳定排序,返回副本 35 - SortStableFuncToBSlice 拷贝副本,传入一个函数,对slice进行稳定排序,返回副本初始化的anyslice 36 - IsSortedFunc 传入一个函数,判断slice是否已经排序 37 - BinarySearchFunc 传入一个目标值以及一个比较函数进行二分查找 38 - Filter 传入一个函数,将元素传入其中,如果返回true保留,否则删除 39 - FilterToSlice 拷贝副本,传入一个函数,将元素传入其中,如果返回true保留,否则删除,返回副本 40 - FilterToBSlice 拷贝副本,传入一个函数,将元素传入其中,如果返回true保留,否则删除,返回副本初始化的anyslice 41 - Reverse 反转slice 42 - ReverseToSlice 拷贝副本,反转slice,返回副本 43 - ReverseToBSlice 拷贝副本,反转slice,返回副本初始化的anyslice 44 - Marshal 45 - Unmarshal 46 - Len 返回slice长度 47 - Cap 返回slice容量 48 - ToInterfaceSlice 将slice转换为interface slice 49 - ToMetaSlice 返回底层原始slice 50 - Swap 交换两个元素 51 - Clear 清空slice 52 - Append 添加元素 53 - AppendToSlice 拷贝副本,添加元素,返回副本 54 - AppendToBSlice 拷贝副本,添加元素,返回副本初始化的anyslice 55 - CopyToSlice 拷贝副本,返回副本 56 - CopyToBSlice 拷贝副本,返回副本初始化的anyslice 57 - GetByIndex 根据索引返回元素 58 - GetByIndexE 根据索引返回元素,如果索引越界返回错误 59 - GetByIndexOrDefault 根据索引返回元素,如果索引越界返回默认值 60 - GetByRange 拷贝一个副本,根据索引范围返回副本元素 61 - GetByRangeE 拷贝一个副本,根据索引范围返回副本,如果索引越界返回错误 62 - SetByIndex 根据索引设置元素 63 - SetByIndexE 根据索引设置元素,如果索引越界返回错误 64 - SetByRange 根据索引范围设置元素 65 - SetByRangeE 根据索引范围设置元素,如果索引越界返回错误 66 67 ### ComparableBSlice 68 69 - AnyBSlice 继承AnySlice 70 - Contains 判断是否包含某个元素 71 - Equal 判断两个slice是否相等 72 - Compact 相同元素进行收缩 73 74 ### OrderedBSlice 75 76 - ComparableBSlice 继承ComparableSlice 77 - Compare 比较两个slice 78 - Sort 对slice进行排序 79 - IsSorted 判断slice是否已经排序 80 - BinarySearch 二分查找 81 82 ### CalculableBSlice 83 84 - OrderedBSlice 继承OrderedBSlice 85 - Sum 求和 86 - Avg 求平均值 87 - Max 求最大值 88 - Min 求最小值 89 90 ## EXAMPLE 91 92 ```go 93 package main 94 95 import ( 96 "fmt" 97 "github.com/songzhibin97/go-baseutils/base/bslice" 98 ) 99 100 func main() { 101 bs := bslice.NewUnsafeAnyBSlice[int]() 102 bs.Append(1) 103 bs.Append(2) 104 fmt.Println(bs.Len()) // 2 105 bs.Reverse() // []int{2,1} 106 bs.ForEach(func(index int, v int) { 107 fmt.Println(index, v) 108 }) 109 } 110 ```