stream

package
v0.0.23 Latest Latest
Warning

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

Go to latest
Published: Aug 1, 2023 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Map

type Map[K comparable, V any] map[K]V

Map 提供了 map 的链式操作

func WithMap

func WithMap[K comparable, V any](m map[K]V) Map[K, V]

WithMap 使用传入的 map 执行链式操作

  • 该函数将会直接影响到传入的 map
Example
package main

import (
	"fmt"
	"github.com/kercylan98/minotaur/utils/stream"
)

func main() {
	m := stream.WithMap(map[int]string{1: "a", 2: "b", 3: "c", 4: "d", 5: "d"}).Filter(func(key int, value string) bool {
		return key > 3
	})
	fmt.Println(len(m))

}
Output:

2

func WithMapCopy

func WithMapCopy[K comparable, V any](m map[K]V) Map[K, V]

WithMapCopy 使用传入的 map 执行链式操作

  • 该函数不会影响到传入的 map
Example
package main

import (
	"fmt"
	"github.com/kercylan98/minotaur/utils/stream"
)

func main() {
	m := stream.WithMapCopy(map[int]string{1: "a", 2: "b", 3: "c", 4: "d", 5: "d"}).Filter(func(key int, value string) bool {
		return key > 3
	})
	fmt.Println(len(m))

}
Output:

2

func (Map[K, V]) Clear

func (slf Map[K, V]) Clear() Map[K, V]

Clear 清空当前 Map

func (Map[K, V]) Delete

func (slf Map[K, V]) Delete(key K) Map[K, V]

Delete 删除一个值

func (Map[K, V]) Distinct

func (slf Map[K, V]) Distinct(handle func(key K, value V) bool) Map[K, V]

Distinct 去重,如果 handle 返回 true,则认为是重复的元素

func (Map[K, V]) Filter

func (slf Map[K, V]) Filter(handle func(key K, value V) bool) Map[K, V]

Filter 过滤 handle 返回 false 的元素

func (Map[K, V]) FilterKey

func (slf Map[K, V]) FilterKey(keys ...K) Map[K, V]

FilterKey 过滤特定的 key

func (Map[K, V]) FilterValue

func (slf Map[K, V]) FilterValue(values ...V) Map[K, V]

FilterValue 过滤特定的 value

func (Map[K, V]) GetValueOr

func (slf Map[K, V]) GetValueOr(key K, value V) V

GetValueOr 当 key 不存在时,返回一个默认值

func (Map[K, V]) Merge

func (slf Map[K, V]) Merge(maps ...map[K]V) Map[K, V]

Merge 合并多个 Map

func (Map[K, V]) RandomDelete

func (slf Map[K, V]) RandomDelete(n int) Map[K, V]

RandomDelete 随机删除 n 个元素

func (Map[K, V]) RandomKeep

func (slf Map[K, V]) RandomKeep(n int) Map[K, V]

RandomKeep 随机保留 n 个元素

func (Map[K, V]) RandomReplace

func (slf Map[K, V]) RandomReplace(values ...V) Map[K, V]

RandomReplace 将 values 覆盖到当前的 map 中

  • 如果 values 的长度大于当前 map 的长度,则只会覆盖当前 map 的长度

func (Map[K, V]) Range

func (slf Map[K, V]) Range(handle func(key K, value V) bool) Map[K, V]

Range 遍历当前 Map, handle 返回 false 则停止遍历

func (Map[K, V]) Set

func (slf Map[K, V]) Set(key K, value V) Map[K, V]

Set 设置一个值

func (Map[K, V]) ToMap

func (slf Map[K, V]) ToMap() map[K]V

ToMap 将当前 Map 转换为 map

func (Map[K, V]) ToSliceStream

func (slf Map[K, V]) ToSliceStream() Slice[V]

ToSliceStream 将当前 Map stream 转换为 Slice stream

func (Map[K, V]) ToSliceStreamWithKey

func (slf Map[K, V]) ToSliceStreamWithKey() Slice[K]

ToSliceStreamWithKey 将当前 Map stream 转换为 Slice stream,key 为 Slice 的元素

func (Map[K, V]) ToSyncMap

func (slf Map[K, V]) ToSyncMap() *concurrent.BalanceMap[K, V]

ToSyncMap 将当前 Map 转换为 concurrent.BalanceMap

func (Map[K, V]) ValueOr

func (slf Map[K, V]) ValueOr(key K, value V) Map[K, V]

ValueOr 当 key 不存在时,设置一个默认值

type Slice

type Slice[V any] []V

Slice 提供了 slice 的链式操作

func WithSlice

func WithSlice[V any](values []V) Slice[V]

WithSlice 创建一个 Slice

  • 该函数不会影响到传入的 slice

func (Slice[V]) Clear

func (slf Slice[V]) Clear() Slice[V]

Clear 清空

func (Slice[V]) ContainsHandle

func (slf Slice[V]) ContainsHandle(value V, handle func(slice Slice[V]) Slice[V]) Slice[V]

ContainsHandle 如果包含指定的元素则执行 handle

func (Slice[V]) Delete

func (slf Slice[V]) Delete(index int) Slice[V]

Delete 删除指定位置的元素

func (Slice[V]) Distinct

func (slf Slice[V]) Distinct() Slice[V]

Distinct 去重,如果 handle 返回 true 则认为是重复元素

func (Slice[V]) Filter

func (slf Slice[V]) Filter(handle func(index int, value V) bool) Slice[V]

Filter 过滤 handle 返回 false 的元素

func (Slice[V]) FilterIndex

func (slf Slice[V]) FilterIndex(indexes ...int) Slice[V]

FilterIndex 过滤特定的 index

func (Slice[V]) FilterValue

func (slf Slice[V]) FilterValue(values ...V) Slice[V]

FilterValue 过滤特定的 value

func (Slice[V]) GetEndPart

func (slf Slice[V]) GetEndPart(n int) Slice[V]

GetEndPart 获取后 n 个元素

func (Slice[V]) GetPart

func (slf Slice[V]) GetPart(start, end int) Slice[V]

GetPart 获取指定区间的元素

func (Slice[V]) GetStartPart

func (slf Slice[V]) GetStartPart(n int) Slice[V]

GetStartPart 获取前 n 个元素

func (Slice[V]) Merge

func (slf Slice[V]) Merge(values ...V) Slice[V]

Merge 合并

func (Slice[V]) RandomDelete

func (slf Slice[V]) RandomDelete(n int) Slice[V]

RandomDelete 随机删除 n 个元素

func (Slice[V]) RandomKeep

func (slf Slice[V]) RandomKeep(n int) Slice[V]

RandomKeep 随机保留 n 个元素

func (Slice[V]) Reverse

func (slf Slice[V]) Reverse() Slice[V]

Reverse 反转

func (Slice[V]) Set

func (slf Slice[V]) Set(index int, value V) Slice[V]

Set 设置指定位置的元素

func (Slice[V]) Shuffle

func (slf Slice[V]) Shuffle() Slice[V]

Shuffle 随机打乱

func (Slice[V]) ToMapStream

func (slf Slice[V]) ToMapStream() Map[int, V]

ToMapStream 将当前的 Slice stream 转换为 Map stream

Jump to

Keyboard shortcuts

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