deck

package
v0.5.2 Latest Latest
Warning

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

Go to latest
Published: Jan 24, 2024 License: MIT Imports: 1 Imported by: 0

README

Deck

Go doc

deck 包中的内容用于针对一堆内容的管理,适用但不限于牌堆、麻将牌堆等情况。

目录导航

列出了该 package 下所有的函数及类型定义,可通过目录导航进行快捷跳转 ❤️

展开 / 折叠目录导航

包级函数定义

函数名称 描述
NewDeck 创建一个新的甲板
NewGroup 创建一个新的组

类型定义

类型 名称 描述
STRUCT Deck 甲板,用于针对一堆 Group 进行管理的数据结构
STRUCT Group 甲板中的组,用于针对一堆内容进行管理的数据结构
INTERFACE Item 甲板成员

详情信息

func NewDeck[I Item]() *Deck[I]

创建一个新的甲板


func NewGroup[I Item](guid int64, fillHandle func (guid int64) []I) *Group[I]

创建一个新的组


Deck STRUCT

甲板,用于针对一堆 Group 进行管理的数据结构

type Deck[I Item] struct {
	groups map[int64]*Group[I]
	sort   []int64
}

func (*Deck) AddGroup(group *Group[I])

将一个组添加到甲板中


func (*Deck) RemoveGroup(guid int64)

移除甲板中的一个组


func (*Deck) GetCount() int

获取甲板中的组数量


func (*Deck) GetGroups() map[int64]*Group[I]

获取所有组


func (*Deck) GetGroupsSlice() []*Group[I]

获取所有组


func (*Deck) GetNext(guid int64) *Group[I]

获取特定组的下一个组


func (*Deck) GetPrev(guid int64) *Group[I]

获取特定组的上一个组


Group STRUCT

甲板中的组,用于针对一堆内容进行管理的数据结构

type Group[I Item] struct {
	guid       int64
	fillHandle func(guid int64) []I
	items      []I
}

func (*Group) GetGuid() int64

获取组的 guid


func (*Group) Fill()

将该组的数据填充为 WithGroupFillHandle 中设置的内容


func (*Group) Pop() (item I)

从顶部获取一个内容


func (*Group) PopN(n int) (items []I)

从顶部获取指定数量的内容


func (*Group) PressOut() (item I)

从底部压出一个内容


func (*Group) PressOutN(n int) (items []I)

从底部压出指定数量的内容


func (*Group) Push(item I)

向顶部压入一个内容


func (*Group) PushN(items []I)

向顶部压入指定数量的内容


func (*Group) Insert(item I)

向底部插入一个内容


func (*Group) InsertN(items []I)

向底部插入指定数量的内容


func (*Group) Pull(index int) (item I)

从特定位置拔出一个内容


func (*Group) Thrust(index int, item I)

向特定位置插入一个内容


func (*Group) IsFree() bool

检查组是否为空


func (*Group) GetCount() int

获取组中剩余的内容数量


func (*Group) GetItem(index int) I

获取组中的指定内容


Item INTERFACE

甲板成员

type Item interface{}

Documentation

Overview

Package deck 包中的内容用于针对一堆内容的管理,适用但不限于牌堆、麻将牌堆等情况。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Deck

type Deck[I Item] struct {
	// contains filtered or unexported fields
}

Deck 甲板,用于针对一堆 Group 进行管理的数据结构

func NewDeck

func NewDeck[I Item]() *Deck[I]

NewDeck 创建一个新的甲板

func (*Deck[I]) AddGroup

func (slf *Deck[I]) AddGroup(group *Group[I])

AddGroup 将一个组添加到甲板中

func (*Deck[I]) GetCount

func (slf *Deck[I]) GetCount() int

GetCount 获取甲板中的组数量

func (*Deck[I]) GetGroups

func (slf *Deck[I]) GetGroups() map[int64]*Group[I]

GetGroups 获取所有组

func (*Deck[I]) GetGroupsSlice

func (slf *Deck[I]) GetGroupsSlice() []*Group[I]

GetGroupsSlice 获取所有组

func (*Deck[I]) GetNext

func (slf *Deck[I]) GetNext(guid int64) *Group[I]

GetNext 获取特定组的下一个组

func (*Deck[I]) GetPrev

func (slf *Deck[I]) GetPrev(guid int64) *Group[I]

GetPrev 获取特定组的上一个组

func (*Deck[I]) RemoveGroup

func (slf *Deck[I]) RemoveGroup(guid int64)

RemoveGroup 移除甲板中的一个组

type Group

type Group[I Item] struct {
	// contains filtered or unexported fields
}

Group 甲板中的组,用于针对一堆内容进行管理的数据结构

func NewGroup

func NewGroup[I Item](guid int64, fillHandle func(guid int64) []I) *Group[I]

NewGroup 创建一个新的组

func (*Group[I]) Fill

func (slf *Group[I]) Fill()

Fill 将该组的数据填充为 WithGroupFillHandle 中设置的内容

func (*Group[I]) GetCount

func (slf *Group[I]) GetCount() int

GetCount 获取组中剩余的内容数量

func (*Group[I]) GetGuid

func (slf *Group[I]) GetGuid() int64

GetGuid 获取组的 guid

func (*Group[I]) GetItem

func (slf *Group[I]) GetItem(index int) I

GetItem 获取组中的指定内容

func (*Group[I]) Insert

func (slf *Group[I]) Insert(item I)

Insert 向底部插入一个内容

func (*Group[I]) InsertN

func (slf *Group[I]) InsertN(items []I)

InsertN 向底部插入指定数量的内容

func (*Group[I]) IsFree

func (slf *Group[I]) IsFree() bool

IsFree 检查组是否为空

func (*Group[I]) Pop

func (slf *Group[I]) Pop() (item I)

Pop 从顶部获取一个内容

func (*Group[I]) PopN

func (slf *Group[I]) PopN(n int) (items []I)

PopN 从顶部获取指定数量的内容

func (*Group[I]) PressOut

func (slf *Group[I]) PressOut() (item I)

PressOut 从底部压出一个内容

func (*Group[I]) PressOutN

func (slf *Group[I]) PressOutN(n int) (items []I)

PressOutN 从底部压出指定数量的内容

func (*Group[I]) Pull

func (slf *Group[I]) Pull(index int) (item I)

Pull 从特定位置拔出一个内容

func (*Group[I]) Push

func (slf *Group[I]) Push(item I)

Push 向顶部压入一个内容

func (*Group[I]) PushN

func (slf *Group[I]) PushN(items []I)

PushN 向顶部压入指定数量的内容

func (*Group[I]) Thrust

func (slf *Group[I]) Thrust(index int, item I)

Thrust 向特定位置插入一个内容

type Item

type Item interface {
}

Item 甲板成员

Jump to

Keyboard shortcuts

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