Skip to content

Commit 85a991f

Browse files
committed
fixed Set method in simple package
1 parent 18ad84c commit 85a991f

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

simple/example_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,16 @@ func ExampleCache() {
2323
if !aok2 {
2424
fmt.Println("key 'a' has been deleted")
2525
}
26+
// update
27+
c.Set("b", 3)
28+
newbv, _ := c.Get("b")
29+
fmt.Println(newbv)
2630
// Output:
2731
// 1 true
2832
// 2 true
2933
// 0 false
3034
// key 'a' has been deleted
35+
// 3
3136
}
3237

3338
func ExampleCacheKeys() {

simple/simple.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,13 @@ func NewCache[K comparable, V any]() *Cache[K, V] {
2626
// The default item never expires.
2727
func (c *Cache[K, V]) Set(k K, v V, opts ...cache.ItemOption) {
2828
c.mu.Lock()
29+
defer c.mu.Unlock()
30+
if item, ok := c.items[k]; ok {
31+
item.Value = v
32+
item.Referenced()
33+
return
34+
}
2935
c.items[k] = cache.NewItem(k, v, opts...)
30-
c.mu.Unlock()
3136
}
3237

3338
// Get gets an item from the cache.

0 commit comments

Comments
 (0)