listings

package
v0.5.4 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2024 License: MIT Imports: 4 Imported by: 0

README

Listings

Go doc

暂无介绍...

目录导航

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

展开 / 折叠目录导航

包级函数定义

函数名称 描述
NewMatrix 创建一个新的 Matrix 实例。
NewPagedSlice 创建一个新的 PagedSlice 实例。
NewPrioritySlice 创建一个优先级切片
NewSyncSlice 创建一个 SyncSlice

类型定义

类型 名称 描述
STRUCT Matrix 暂无描述...
STRUCT PagedSlice 是一个高效的动态数组,它通过分页管理内存并减少频繁的内存分配来提高性能。
STRUCT PrioritySlice 是一个优先级切片
STRUCT SyncSlice 是基于 sync.RWMutex 实现的线程安全的 slice

详情信息

func NewMatrix[V any](dimensions ...int) *Matrix[V]

创建一个新的 Matrix 实例。


func NewPagedSlice[T any](pageSize int) *PagedSlice[T]

创建一个新的 PagedSlice 实例。


func NewPrioritySlice[V any](lengthAndCap ...int) *PrioritySlice[V]

创建一个优先级切片


func NewSyncSlice[V any](length int, cap int) *SyncSlice[V]

创建一个 SyncSlice


Matrix STRUCT
type Matrix[V any] struct {
	dimensions []int
	data       []V
}

func (*Matrix) Get(index ...int) *V

获取矩阵中给定索引的元素。


func (*Matrix) Set(index []int, value V)

设置矩阵中给定索引的元素。


func (*Matrix) Dimensions() []int

返回矩阵的维度大小。


func (*Matrix) Clear()

清空矩阵。


PagedSlice STRUCT

是一个高效的动态数组,它通过分页管理内存并减少频繁的内存分配来提高性能。

type PagedSlice[T any] struct {
	pages    [][]T
	pageSize int
	len      int
	lenLast  int
}

func (*PagedSlice) Add(value T)

添加一个元素到 PagedSlice 中。


func (*PagedSlice) Get(index int) *T

获取 PagedSlice 中给定索引的元素。


func (*PagedSlice) Set(index int, value T)

设置 PagedSlice 中给定索引的元素。


func (*PagedSlice) Len() int

返回 PagedSlice 中元素的数量。


func (*PagedSlice) Clear()

清空 PagedSlice。


func (*PagedSlice) Range(f func (index int, value T) bool)

迭代 PagedSlice 中的所有元素。


PrioritySlice STRUCT

是一个优先级切片

type PrioritySlice[V any] struct {
	items []*priorityItem[V]
}

func (*PrioritySlice) Len() int

返回切片长度


func (*PrioritySlice) Cap() int

返回切片容量


func (*PrioritySlice) Clear()

清空切片


func (*PrioritySlice) Append(v V, p int)

添加元素

查看 / 收起单元测试

func TestPrioritySlice_Append(t *testing.T) {
	var s = listings.NewPrioritySlice[string]()
	s.Append("name_1", 2)
	s.Append("name_2", 1)
	fmt.Println(s)
}


func (*PrioritySlice) Appends(priority int, vs ...V)

添加元素


func (*PrioritySlice) Get(index int) ( V, int)

获取元素


func (*PrioritySlice) GetValue(index int) V

获取元素值


func (*PrioritySlice) GetPriority(index int) int

获取元素优先级


func (*PrioritySlice) Set(index int, value V, priority int)

设置元素


func (*PrioritySlice) SetValue(index int, value V)

设置元素值


func (*PrioritySlice) SetPriority(index int, priority int)

设置元素优先级


func (*PrioritySlice) Action(action func (items []*priorityItem[V]) []*priorityItem[V])

直接操作切片,如果返回值不为 nil,则替换切片


func (*PrioritySlice) Range(action func (index int, item *priorityItem[V]) bool)

遍历切片,如果返回值为 false,则停止遍历


func (*PrioritySlice) RangeValue(action func (index int, value V) bool)

遍历切片值,如果返回值为 false,则停止遍历


func (*PrioritySlice) RangePriority(action func (index int, priority int) bool)

遍历切片优先级,如果返回值为 false,则停止遍历


func (*PrioritySlice) Slice() []V

SyncSlice 返回切片


func (*PrioritySlice) String() string

返回切片字符串


SyncSlice STRUCT

是基于 sync.RWMutex 实现的线程安全的 slice

type SyncSlice[V any] struct {
	rw   sync.RWMutex
	data []V
}

func (*SyncSlice) Get(index int) V

func (*SyncSlice) GetWithRange(start int, end int) []V

func (*SyncSlice) Set(index int, value V)

func (*SyncSlice) Append(values ...V)

func (*SyncSlice) Release()

func (*SyncSlice) Clear()

func (*SyncSlice) GetData() []V

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Matrix

type Matrix[V any] struct {
	// contains filtered or unexported fields
}

func NewMatrix

func NewMatrix[V any](dimensions ...int) *Matrix[V]

NewMatrix 创建一个新的 Matrix 实例。

func (*Matrix[V]) Clear

func (slf *Matrix[V]) Clear()

Clear 清空矩阵。

func (*Matrix[V]) Dimensions

func (slf *Matrix[V]) Dimensions() []int

Dimensions 返回矩阵的维度大小。

func (*Matrix[V]) Get

func (slf *Matrix[V]) Get(index ...int) *V

Get 获取矩阵中给定索引的元素。

func (*Matrix[V]) Set

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

Set 设置矩阵中给定索引的元素。

type PagedSlice

type PagedSlice[T any] struct {
	// contains filtered or unexported fields
}

PagedSlice 是一个高效的动态数组,它通过分页管理内存并减少频繁的内存分配来提高性能。

func NewPagedSlice

func NewPagedSlice[T any](pageSize int) *PagedSlice[T]

NewPagedSlice 创建一个新的 PagedSlice 实例。

func (*PagedSlice[T]) Add

func (slf *PagedSlice[T]) Add(value T)

Add 添加一个元素到 PagedSlice 中。

func (*PagedSlice[T]) Clear

func (slf *PagedSlice[T]) Clear()

Clear 清空 PagedSlice。

func (*PagedSlice[T]) Get

func (slf *PagedSlice[T]) Get(index int) *T

Get 获取 PagedSlice 中给定索引的元素。

func (*PagedSlice[T]) Len

func (slf *PagedSlice[T]) Len() int

Len 返回 PagedSlice 中元素的数量。

func (*PagedSlice[T]) Range

func (slf *PagedSlice[T]) Range(f func(index int, value T) bool)

Range 迭代 PagedSlice 中的所有元素。

func (*PagedSlice[T]) Set

func (slf *PagedSlice[T]) Set(index int, value T)

Set 设置 PagedSlice 中给定索引的元素。

type PrioritySlice

type PrioritySlice[V any] struct {
	// contains filtered or unexported fields
}

PrioritySlice 是一个优先级切片,优先级越低越靠前

func NewPrioritySlice

func NewPrioritySlice[V any](lengthAndCap ...int) *PrioritySlice[V]

NewPrioritySlice 创建一个优先级切片,优先级越低越靠前

func (*PrioritySlice[V]) Action

func (slf *PrioritySlice[V]) Action(action func(items []*priorityItem[V]) []*priorityItem[V])

Action 直接操作切片,如果返回值不为 nil,则替换切片

func (*PrioritySlice[V]) Append

func (slf *PrioritySlice[V]) Append(v V, p int)

Append 添加元素

func (*PrioritySlice[V]) Appends

func (slf *PrioritySlice[V]) Appends(priority int, vs ...V)

Appends 添加元素

func (*PrioritySlice[V]) Cap

func (slf *PrioritySlice[V]) Cap() int

Cap 返回切片容量

func (*PrioritySlice[V]) Clear

func (slf *PrioritySlice[V]) Clear()

Clear 清空切片

func (*PrioritySlice[V]) Get

func (slf *PrioritySlice[V]) Get(index int) (V, int)

Get 获取元素

func (*PrioritySlice[V]) GetPriority

func (slf *PrioritySlice[V]) GetPriority(index int) int

GetPriority 获取元素优先级

func (*PrioritySlice[V]) GetValue

func (slf *PrioritySlice[V]) GetValue(index int) V

GetValue 获取元素值

func (*PrioritySlice[V]) Len

func (slf *PrioritySlice[V]) Len() int

Len 返回切片长度

func (*PrioritySlice[V]) Range

func (slf *PrioritySlice[V]) Range(action func(index int, item *priorityItem[V]) bool)

Range 遍历切片,如果返回值为 false,则停止遍历

func (*PrioritySlice[V]) RangePriority

func (slf *PrioritySlice[V]) RangePriority(action func(index int, priority int) bool)

RangePriority 遍历切片优先级,如果返回值为 false,则停止遍历

func (*PrioritySlice[V]) RangeValue

func (slf *PrioritySlice[V]) RangeValue(action func(index int, value V) bool)

RangeValue 遍历切片值,如果返回值为 false,则停止遍历

func (*PrioritySlice[V]) Set

func (slf *PrioritySlice[V]) Set(index int, value V, priority int)

Set 设置元素

func (*PrioritySlice[V]) SetPriority

func (slf *PrioritySlice[V]) SetPriority(index int, priority int)

SetPriority 设置元素优先级

func (*PrioritySlice[V]) SetValue

func (slf *PrioritySlice[V]) SetValue(index int, value V)

SetValue 设置元素值

func (*PrioritySlice[V]) Slice

func (slf *PrioritySlice[V]) Slice() []V

SyncSlice 返回切片

func (*PrioritySlice[V]) String

func (slf *PrioritySlice[V]) String() string

String 返回切片字符串

type SyncSlice

type SyncSlice[V any] struct {
	// contains filtered or unexported fields
}

SyncSlice 是基于 sync.RWMutex 实现的线程安全的 slice

func NewSyncSlice

func NewSyncSlice[V any](length, cap int) *SyncSlice[V]

NewSyncSlice 创建一个 SyncSlice

func (*SyncSlice[V]) Append

func (slf *SyncSlice[V]) Append(values ...V)

func (*SyncSlice[V]) Clear

func (slf *SyncSlice[V]) Clear()

func (*SyncSlice[V]) Get

func (slf *SyncSlice[V]) Get(index int) V

func (*SyncSlice[V]) GetData

func (slf *SyncSlice[V]) GetData() []V

func (*SyncSlice[V]) GetWithRange

func (slf *SyncSlice[V]) GetWithRange(start, end int) []V

func (*SyncSlice[V]) Release

func (slf *SyncSlice[V]) Release()

func (*SyncSlice[V]) Set

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

Jump to

Keyboard shortcuts

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