gring

package
v1.5.0 Latest Latest
Warning

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

Go to latest
Published: Feb 3, 2019 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

Package gring provides a concurrent-safe(alternative) ring(circular lists).

并发安全环.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Ring

type Ring struct {
	// contains filtered or unexported fields
}

func New

func New(cap int, unsafe ...bool) *Ring

func (*Ring) Cap

func (r *Ring) Cap() int

返回当前环总大小(包含未使用长度)

func (*Ring) Len

func (r *Ring) Len() int

返回当前环已有数据项大小

func (r *Ring) Link(s *Ring) *Ring

连接两个环,两个环的大小和位置都有可能会发生改变。 1、链接将环r与环s连接,使得r.Next()成为s并返回r.Next()的原始值。r一定不能为空。 2、如果r和s指向同一个环,则链接它们会从环中移除r和s之间的元素。

删除的元素形成子环,结果是对该子环的引用(如果没有删除元素,结果仍然是r.Next()的原始值,而不是nil)。

3、如果r和s指向不同的环,则链接它们会创建一个单独的环,并在r之后插入s的元素。 结果指向插入后s的最后一个元素后面的元素。

func (*Ring) LockIteratorNext

func (r *Ring) LockIteratorNext(f func(item *ring.Ring) bool)

写锁遍历,往后写遍历,回调函数返回true表示继续遍历,否则退出遍历

func (*Ring) LockIteratorPrev

func (r *Ring) LockIteratorPrev(f func(item *ring.Ring) bool)

写锁遍历,往前写遍历,回调函数返回true表示继续遍历,否则退出遍历

func (*Ring) Move

func (r *Ring) Move(n int) *Ring

环往后(n > 0)或者往前(n < 0)移动n个元素

func (*Ring) Next

func (r *Ring) Next() *Ring

环往后移动1个元素

func (*Ring) Prev

func (r *Ring) Prev() *Ring

环往前移动1个元素

func (*Ring) Put

func (r *Ring) Put(value interface{}) *Ring

Set & Next

func (*Ring) RLockIteratorNext

func (r *Ring) RLockIteratorNext(f func(value interface{}) bool)

读锁遍历,往后只读遍历,回调函数返回true表示继续遍历,否则退出遍历

func (*Ring) RLockIteratorPrev

func (r *Ring) RLockIteratorPrev(f func(value interface{}) bool)

读锁遍历,往前只读遍历,回调函数返回true表示继续遍历,否则退出遍历

func (*Ring) Set

func (r *Ring) Set(value interface{}) *Ring

当前位置设置数据项值

func (*Ring) SliceNext

func (r *Ring) SliceNext() []interface{}

从当前位置,往后只读完整遍历,返回非空数据项值构成的数组

func (*Ring) SlicePrev

func (r *Ring) SlicePrev() []interface{}

从当前位置,往前只读完整遍历,返回非空数据项值构成的数组

func (r *Ring) Unlink(n int) *Ring

删除环中当前位置往后的n个数据项

func (*Ring) Val

func (r *Ring) Val() interface{}

返回当前环指向的数据项值

Jump to

Keyboard shortcuts

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