Lru

基础

main.go
package main

import (
	"fmt"
	helper_lru "github.com/langwan/langgo/helpers/lru"
)

func main() {
	lru := helper_lru.New[string, int](2)
	lru.Set("x", 1)
	lru.Set("y", 2)
	if val, ok := lru.Get("x"); ok {
		fmt.Println("x", val)
	}
	lru.Set("z", 3)
	if val, ok := lru.Get("y"); ok {
		fmt.Println("y", val)
	}
}
output
x 1

Peek

main.go
package main

import (
   "fmt"
   helper_lru "github.com/langwan/langgo/helpers/lru"
)

func main() {
   lru := helper_lru.New[string, int](2)
   lru.Set("x", 1)
   lru.Set("y", 2)
   if val, ok := lru.Peek("x"); ok {
      fmt.Println("x", val)
   }
   lru.Set("z", 3)
   if val, ok := lru.Peek("x"); ok {
      fmt.Println("x", val)
   }
}
output
x 1

Range

main.go
package main

import (
   "fmt"
   helper_lru "github.com/langwan/langgo/helpers/lru"
)

func main() {
   lru := helper_lru.New[string, int](2)
   lru.Set("x", 1)
   lru.Set("y", 2)
   lru.Range(func(k, v any) bool {
      fmt.Println(k, v)
      return true
   })
}
output
x 1
y 2

多实例

main.go
package main

import (
   "fmt"
   helper_lru "github.com/langwan/langgo/helpers/lru"
)

func main() {
   lruAccount := helper_lru.New[string, int](2)
   lruAccount.Set("x", 1)
   lruAccount.Set("y", 2)
   lruAccount.Range(func(k, v any) bool {
      fmt.Println(k, v)
      return true
   })
   lruOrder := helper_lru.New[int, int](2)
   lruOrder.Set(1, 1)
   lruOrder.Set(2, 2)
   lruOrder.Range(func(k, v any) bool {
      fmt.Println(k, v)
      return true
   })
}
output
y 2
x 1
1 1
2 2

Last updated