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个操作的最终结果.(就不用反复查询数据库.)