?
Dokumen ini menggunakan Manual laman web PHP Cina Lepaskan
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)的元素。戒指沒(méi)有開(kāi)始或結(jié)束;指向任何環(huán)形元素的指針用作整個(gè)環(huán)的參考。空環(huán)表示為零環(huán)指針。一個(gè)環(huán)的零值是一個(gè)無(wú)零值的單元素環(huán)。
type Ring struct { Value interface{} // 供客戶端使用;未受此庫(kù)的影響 // 包含過(guò)濾或未導(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 連接起來(lái),使 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)的引用(如果沒(méi)有元素被刪除,結(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
接下來(lái)返回下一個(gè)環(huán)元素。r 不能為空。
func (r *Ring) Prev() *Ring
上一個(gè)返回前一個(gè)環(huán)元素。r 不能為空。
func (r *Ring) Unlink(n int) *Ring
取消鏈接會(huì)從 r.Next() 開(kāi)始,從 r 環(huán)中刪除 n%r.Len() 元素。如果n % r.Len() == 0,則 r 保持不變。結(jié)果是被刪除的子環(huán)。r 不能為空。