package main
import (
"container/ring"
"crypto/md5"
"crypto/sha1"
"encoding/hex"
"fmt"
)
type Thing struct {
Id int
Info string
}
func main() {
//环形内存的使用
r := ring.New(10) //声明一个
for i := 0; i < 100; i++ {
r.Value = Thing{
Id: i,
Info: fmt.Sprintf("%d-%s", i, "值"),
}
r = r.Next() //这里有一个指针指向下一个元素.
}
r.Do(func(a any) { //就是遍历整个环形内存,遍历的结果就是传入func的参数.a
fmt.Printf("%v ", a)
})
}
可以用在缓存,或者统计近N个操作的最终结果.(就不用反复查询数据库.)
该代码示例展示了如何在Go中使用`container/ring`包创建一个环形缓冲区,用于存储和遍历Thing结构体。环形缓冲区可以用于缓存和记录最近N个操作的结果,避免频繁访问数据库。
1091

被折叠的 条评论
为什么被折叠?



