ring

最后更新于:2022-04-02 02:42:40

[TOC] ## ring 环的尾部就是头部,环还提供一个Do方法,能便利一遍环,对每个元素执行一个function ``` type Ring func New(n int) *Ring // 初始化环 func (r *Ring) Do(f func(interface{})) // 循环环进行操作 func (r *Ring) Len() int // 环长度 func (r *Ring) Link(s *Ring) *Ring // 连接两个环 func (r *Ring) Move(n int) *Ring // 指针从当前元素开始向后移动或者向前(n可以为负数) func (r *Ring) Next() *Ring // 当前元素的下个元素 func (r *Ring) Prev() *Ring // 当前元素的上个元素 func (r *Ring) Unlink(n int) *Ring // 从当前元素开始,删除n个元素 ``` ### demo ``` r := ring.New(4) n := r.Len() for i := 0; i < n; i++ { r.Value = i //复制 r = r.Next() // } //r = r.Unlink(4) r.Do(func(p interface{}) { fmt.Println(p) }) ```
';