?
本文檔使用 php中文網(wǎng)手冊(cè) 發(fā)布
import "container/ring"
概述
索引
封裝環(huán)在圓形列表上執(zhí)行操作。
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
func (r *Ring) Next() *Ring
func (r *Ring) Prev() *Ring
func (r *Ring) Unlink(n int) *Ring
ring.go
環(huán)是圓形列表或環(huán)的元素。戒指沒有開始或結(jié)束;指向任何環(huán)形元素的指針用作整個(gè)環(huán)的參考??窄h(huán)表示為零環(huán)指針。一個(gè)環(huán)的零值是一個(gè)無零值的單元素環(huán)。
type Ring struct { Value interface{} // 供客戶端使用;未受此庫的影響 // 包含過濾或未導(dǎo)出的字段}
func New(n int) *Ring
新創(chuàng)建了n個(gè)元素的環(huán)。
func (r *Ring) Do(f func(interface{}))
按照正向順序在環(huán)的每個(gè)元素上調(diào)用函數(shù) f 。如果 f 更改 * r,Do 的行為是不確定的。
func (r *Ring) Len() int
Len 計(jì)算環(huán) r 中元素的數(shù)量。它在時(shí)間上與元素的數(shù)量成比例地執(zhí)行。
func (r *Ring) Link(s *Ring) *Ring
Link 將 ring 與 ring 連接起來,使 r.Next() 變?yōu)?s 并返回 r.Next() 的原始值。r 不能為空。
如果 r 和 s 指向同一個(gè)環(huán),則鏈接它們會(huì)從環(huán)中刪除 r 和 s 之間的元素。被刪除的元素形成一個(gè)子環(huán),結(jié)果是對(duì)該子環(huán)的引用(如果沒有元素被刪除,結(jié)果仍然是 r.Next() 的原始值,而不是 nil)。
如果 r 和 s 指向不同的環(huán),則鏈接它們將創(chuàng)建一個(gè)單一的環(huán),并在 r 之后插入 s 的元素。結(jié)果指向插入后 s 的最后一個(gè)元素之后的元素。
func (r *Ring) Move(n int) *Ring
Move 在環(huán)中向后(n < 0)或向前(n >= 0)移動(dòng) n % r.Len()元素并返回該環(huán)元素。r 不能為空。
func (r *Ring) Next() *Ring
接下來返回下一個(gè)環(huán)元素。r 不能為空。
func (r *Ring) Prev() *Ring
上一個(gè)返回前一個(gè)環(huán)元素。r 不能為空。
func (r *Ring) Unlink(n int) *Ring
取消鏈接會(huì)從 r.Next() 開始,從 r 環(huán)中刪除 n%r.Len() 元素。如果n % r.Len() == 0,則 r 保持不變。結(jié)果是被刪除的子環(huán)。r 不能為空。