sliceutil

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 10, 2024 License: Apache-2.0 Imports: 1 Imported by: 0

README

res := data[:0] // res 复用 data 的底层数组 部分操作可以复用底层数组实现内存零分配。

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ContainsWithGenerics

func ContainsWithGenerics[T common.BasicData](obj T, carrier []T) bool

ContainsWithGenerics 判断某个元素是否存在于对应 carrier 的中,支持基础数据的判断

func DeepCopySlice

func DeepCopySlice[T any](carrier []T) []T

DeepCopySlice 深拷贝,开辟一个新的切片

func DeleteElemSliceWithAny

func DeleteElemSliceWithAny[T any](carrier []T, fnEqual FunEqual[T], elem T) []T

DeleteElemSliceWithAny 移位法 删除指元素,如果传入的数据不在切片范围内则返回原切片

func DeleteIndSliceWithAny

func DeleteIndSliceWithAny[T any](carrier []T, index int) []T

DeleteIndSliceWithAny 移位法 删除指定索引处的数据,如果传入的索引不在切片范围内则返回原切片

func DeleteMultiElemSliceWithAny

func DeleteMultiElemSliceWithAny[T any](carrier []T, fnEqual FunEqual[T], elems ...T) []T

DeleteMultiElemSliceWithAny 删除指定数据(数据可为多个)处的数据,如果传入的索引不在切片范围内则返回原切片

func DeleteMultiIndSliceWithAny

func DeleteMultiIndSliceWithAny[T any](carrier []T, index ...int) []T

DeleteMultiIndSliceWithAny 删除指定索引(索引可为多个)处的数据,如果传入的索引不在切片范围内则返回原切片

func EuqalSlice

func EuqalSlice[T common.BasicData](carrierA []T, carrierB []T) bool

EuqalSlice 判断两个切片是否相等

func InSlice

func InSlice[T common.BasicData](obj T, carrier []T) bool

InSlice 判断该元素是否存在于切片中

func InSliceWithAny

func InSliceWithAny[T any](obj T, carrier []T, fnEqual FunEqual[T]) bool

func InsertSliceAfterWithAny

func InsertSliceAfterWithAny[T any](carrier []T, index int, values ...T) []T

InsertSliceAfterWithAny 将数据插入切片 index 之后,如果 index 小于当前切片长度,则插入头部,反之插入尾部

func InsertSliceBeforeWithAny

func InsertSliceBeforeWithAny[T any](carrier []T, index int, values ...T) []T

InsertSliceBeforeWithAny 将数据插入切片 index 之前,如果 index 小于当前切片长度,则插入头部,反之插入尾部

func MergeSlice

func MergeSlice[T common.BasicData](carrierA, carrierB []T) []T

func MergeSliceWithAny

func MergeSliceWithAny[T any](carrierA, carrierB []T, fnEqual FunEqual[T]) []T

func NotInSlice

func NotInSlice[T common.BasicData](obj T, carrier []T) bool

NotInSlice 判断该元素是否不存在于切片中

func NotInSliceWithAny

func NotInSliceWithAny[T any](obj T, carrier []T, fnEqual FunEqual[T]) bool

func ReverseDeepWithAny

func ReverseDeepWithAny[T any](carrier []T) []T

ReverseDeepWithAny 反转函数,深拷贝

func ReverseSliceWithAny

func ReverseSliceWithAny[T any](carrier []T)

ReverseSliceWithAny 反转切片

func SubtractSlice

func SubtractSlice[T common.BasicData](carrierA, carrierB []T) []T

SubtractSlice 实现切片A-B的效果

func SubtractSliceWithAny

func SubtractSliceWithAny[T any](carrierA, carrierB []T, fnEqual FunEqual[T]) []T

SubtractSliceWithAny 实现切片A-B的效果

func UniqueSlice

func UniqueSlice[T common.NumberData](carrier []T) []T

UniqueSlice 切片去重函数

Types

type CompareFunc

type CompareFunc[T common.BasicData] func(a, b T) bool

type FunEqual

type FunEqual[T any] func(a, b T) (T, bool)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳