Files

44 lines
544 B
Go

package main
import (
"sync"
)
// Need to show solution
type Cache struct {
mutex sync.Mutex
data map[string]string
}
func NewCache() *Cache {
return &Cache{
data: make(map[string]string),
}
}
func (c *Cache) Set(key, value string) {
c.mutex.Lock()
defer c.mutex.Unlock()
c.data[key] = value
}
func (c *Cache) Get(key string) string {
c.mutex.Lock()
defer c.mutex.Unlock()
if c.Size() > 0 {
return c.data[key]
}
return ""
}
func (c *Cache) Size() int {
c.mutex.Lock()
defer c.mutex.Unlock()
return len(c.data)
}