slices

package
v0.0.0-...-975354a Latest Latest
Warning

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

Go to latest
Published: Apr 9, 2024 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func All

func All(n int, f func(i int) bool) bool

All 仅当 0..n (含0,不含n)中的所有元素都满足给定的 func , 才返回 true ,否则返回 false

deprecated

已废弃,请使用 !Contains() 代替

func Any

func Any(n int, f func(i int) bool) bool

Any 只要 0..n (含0,不含n)中的任一元素满足给定的 func ,就返回 true ,否则返回 false

deprecated

已废弃,请使用 Contains() 代替

func Contains

func Contains[T comparable](arr []T, e T) bool

Contains 判断一个 slice 中是否包含某个元素

deprecated

已废弃,请使用 "slices" 中的 Contains 函数

func CopyOf

func CopyOf[T any](original []T, newLength int) []T

CopyOf 复制指定的 slice ,根据 newLength ,如果有必要,则截取或者在后面填默认的零值

deprecated

已废弃,请使用 "slices" 中的 Clone 函数

func CopyOfRange

func CopyOfRange[T any](original []T, from, to int) []T

CopyOfRange 将指定 slice 从 from 到 to 下标复制出来,如果 to 比原 slice 的长度更长,则在后面补默认的零值

deprecated

已废弃,请直接使用 append

func Duplicate

func Duplicate[T any](count int, e T) []T

Duplicate 生成一个元素全为 e 的长度为 count 的 slice

func Equals

func Equals[T comparable](arr1, arr2 []T) bool

Equals 当且仅当两个 slice 长度相同且包含的元素完全相同时返回 ture ,否则返回 false

deprecated

已废弃,请使用 "slices" 中的 Equal 函数

func Fold

func Fold[T any](n int, f func(i int, acc T) T, initial T) T

Fold 对 0..n (含0,不含n)的每个元素依次调用给定函数,得到一个最终值

func FoldReverse

func FoldReverse[T any](n int, f func(i int, acc T) T, initial T) T

FoldReverse 对 n..0 (含0,不含n) 的每个元素依次调用给定函数,得到一个最终值

func Map

func Map[T any](n int, f func(i int) (T, bool)) []T

Map 对 n..0 (含0,不含n)根据给定函数将每个元素映射并筛选后得到一个新的 slice

func Progression

func Progression[E integer](start, end, step E) func(func(E) bool)

Progression 生成一个左开右闭区间的整数序列,包含 start ,不含 end ,步长为 step

如果需要使用,需要在编译时设置环境变量 GOEXPERIMENT=rangefunc

使用方法:

for i := range Progression(1, 5, 2) {
    fmt.Println(i)
}

func Range

func Range[E integer](start, end E) func(func(E) bool)

Range 生成一个左开右闭区间的整数序列,包含 start ,不含 end

如果需要使用,需要在编译时设置环境变量 GOEXPERIMENT=rangefunc

使用方法:

for i := range Range(1, 5) {
    fmt.Println(i)
}

func Reverse

func Reverse[T any](arr []T)

Reverse 将给定 slice 反向

deprecated

已废弃,请使用 "slices" 中的 Reverse 函数

func Seq

func Seq[T integer](from, to T, span ...T) []T

Seq 生成连续多个数组成的 slice

func ShuffleN

func ShuffleN[T any](rand *rand.Rand, arr []T, n int)

ShuffleN 打乱一个 slice ,但后续只会用前n个值,因此做了一些优化

func Sort

func Sort[T any](arr []T, less func(a, b T) bool)

Sort 排序,改变原 slice

deprecated

已废弃,请使用 "slices" 中的 SortFunc 函数

func Sum

func Sum[T interface {
	integer | ~float32 | ~float64 | ~complex64 | ~complex128
}](arr []T) (sum T)

Sum 求和,小心溢出

func Uniq

func Uniq[T comparable](arr []T) []T

Uniq 去重,返回新的 slice

func Usort

func Usort[T any](arr []T, lessThan func(a, b T) bool) []T

Usort 排序并去重,返回新的 slice

deprecated

已废弃,请调用 slices.SortFunc 函数后,再调用 slices.CompactFunc 函数

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL