本文整理汇总了Golang中container/ring.Ring.Len方法的典型用法代码示例。如果您正苦于以下问题:Golang Ring.Len方法的具体用法?Golang Ring.Len怎么用?Golang Ring.Len使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类container/ring.Ring
的用法示例。
在下文中一共展示了Ring.Len方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: printRing
func printRing(r *ring.Ring) {
elements := make([]interface{}, 0, r.Len())
r.Do(func(i interface{}) {
elements = append(elements, i)
})
log.Printf("%v", elements)
}
示例2: slicifyRing
func slicifyRing(r *ring.Ring) {
l := r.Len()
s := make([]WindowData, 0, l)
for i := 0; i < l; i++ {
s = append(s, r.Value.(WindowData))
r = r.Prev()
}
}
示例3: slicifyRing
func slicifyRing(r *ring.Ring) {
l := r.Len()
s := make([]float64, 0, l)
for i := 0; i < l; i++ {
s = append(s, r.Value.(float64))
r = r.Prev()
}
}
示例4: current_extremes
func current_extremes(r *ring.Ring) (int, int) {
length := r.Len()
if length%2 != 0 {
fmt.Fprintln(os.Stderr, "error: Ring must be even")
os.Exit(1)
}
fmt.Println(r.Value)
return r.Value.(int), r.Move(length / 2).Value.(int)
}
示例5: RingToStringInt64
func RingToStringInt64(r *ring.Ring, delim string, delta bool) string {
bb := new(bytes.Buffer)
prev := r.Value.(int64)
r = r.Next()
for i := 1; i < r.Len(); i++ {
if delta {
if r.Value.(int64) == int64(0) {
bb.WriteString(fmt.Sprintf("0%s", delim))
} else {
d := r.Value.(int64) - prev
bb.WriteString(fmt.Sprintf("%d%s", d, delim))
}
prev = r.Value.(int64)
} else {
bb.WriteString(fmt.Sprintf("%d%s", r.Value.(int64), delim))
}
r = r.Next()
}
return strings.TrimSuffix(bb.String(), delim)
}