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  ```