generic

package
v0.0.0-...-04ef08d Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2024 License: MulanPSL-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RandomShuffle

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

RandomShuffle 函数用于对指定类型的切片进行随机打乱。

参数: arr []T: 待打乱顺序的切片。

返回值: []T: 打乱顺序后的切片。

Types

type Iterable

type Iterable[T any] interface {
	Iterator() Iterator[T]
}

type Iterator

type Iterator[T any] interface {
	Next() (T, bool)
}

type MapImplement

type MapImplement[T comparable, Y any] struct {
	// contains filtered or unexported fields
}

func (*MapImplement[T, Y]) Clear

func (m *MapImplement[T, Y]) Clear()

func (*MapImplement[T, Y]) Delete

func (m *MapImplement[T, Y]) Delete(key T)

func (*MapImplement[T, Y]) Entries

func (m *MapImplement[T, Y]) Entries() []PairInterface[T, Y]

func (*MapImplement[T, Y]) ForEach

func (m *MapImplement[T, Y]) ForEach(callback func(Y, T, MapInterface[T, Y]))

func (*MapImplement[T, Y]) Get

func (m *MapImplement[T, Y]) Get(key T) (Y, bool)

func (*MapImplement[T, Y]) Has

func (m *MapImplement[T, Y]) Has(key T) bool

func (*MapImplement[T, Y]) Iterator

func (m *MapImplement[T, Y]) Iterator() Iterator[PairInterface[T, Y]]

func (*MapImplement[T, Y]) Keys

func (m *MapImplement[T, Y]) Keys() []T

func (*MapImplement[T, Y]) Set

func (m *MapImplement[T, Y]) Set(key T, value Y)

func (*MapImplement[T, Y]) Size

func (m *MapImplement[T, Y]) Size() int64

func (*MapImplement[T, Y]) Values

func (m *MapImplement[T, Y]) Values() []Y

type MapInterface

type MapInterface[T comparable, Y any] interface {
	Iterable[PairInterface[T, Y]]
	// Clear 清空映射中的所有元素。
	Clear()
	// Delete 从映射中删除指定的键。
	Delete(T)
	// Get 返回指定键的值,如果键不存在,则返回false。
	Get(T) (Y, bool)
	// Set 设置指定键的值。
	Set(T, Y)
	// Has 检查映射中是否存在指定的键。
	Has(T) bool
	// Values 返回映射中所有值的切片。
	Values() []Y
	// Kes 返回映射中所有键的切片。
	Keys() []T
	// Size 返回映射中元素的数量。
	Size() int64
	// Entries 返回映射中所有键值对的切片。
	Entries() []PairInterface[T, Y]
	ForEach(func(Y, T, MapInterface[T, Y]))
}

MapInterface 是一个泛型映射接口,支持基本的映射操作。

func MapImplementFromMap

func MapImplementFromMap[T comparable, Y any](entries map[T]Y) MapInterface[T, Y]

func NewMapImplement

func NewMapImplement[T comparable, Y any](entries ...PairInterface[T, Y]) MapInterface[T, Y]

type MapIterator

type MapIterator[T comparable, Y any] struct {
	// contains filtered or unexported fields
}

func (*MapIterator[T, Y]) Next

func (m *MapIterator[T, Y]) Next() (PairInterface[T, Y], bool)

Next implements Iterator.

type PairImplement

type PairImplement[T any, Y any] struct {
	First  T // First是结构体中的第一个元素。
	Second Y // Second是结构体中的第二个元素。
}

Pair 是一个泛型结构体,用于存储一对任意类型的值。 T和Y是泛型参数,代表First和Second可以是任何类型。

func (*PairImplement[T, Y]) GetFirst

func (p *PairImplement[T, Y]) GetFirst() T

实现 GetFirst 方法

func (*PairImplement[T, Y]) GetSecond

func (p *PairImplement[T, Y]) GetSecond() Y

实现 GetSecond 方法

func (*PairImplement[T, Y]) SetFirst

func (p *PairImplement[T, Y]) SetFirst(first T)

实现 SetFirst 方法

func (*PairImplement[T, Y]) SetSecond

func (p *PairImplement[T, Y]) SetSecond(second Y)

实现 SetSecond 方法

type PairInterface

type PairInterface[T any, Y any] interface {
	GetFirst() T
	SetFirst(T)
	GetSecond() Y

	SetSecond(Y)
}

func NewPairImplement

func NewPairImplement[T any, Y any](first T, second Y) PairInterface[T, Y]

构造函数

Jump to

Keyboard shortcuts

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