github.com/songzhibin97/go-baseutils@v0.0.2-0.20240302024150-487d8ce9c082/app/bcache/iterator.go (about) 1 package bcache 2 3 import ( 4 "time" 5 ) 6 7 type Iterator[E any] struct { 8 // Value 实际存储的对象 9 Value E 10 // Expire 过期时间 11 // 0 不设置过期时间 12 Expire int64 13 } 14 15 // expired 判断是否过期,过期返回 true 16 func (i Iterator[E]) expired(v ...int64) bool { 17 if !i.isVisit() { 18 return false 19 } 20 if len(v) != 0 { 21 return v[0] > i.Expire 22 } 23 return time.Now().UnixNano() > i.Expire 24 } 25 26 // IsVisit 根据expire判断是否需要监控 27 func (i Iterator[E]) isVisit() bool { 28 return i.Expire > 0 29 }