Sobes.tech
Middle+

Implémentez un cache basé sur map[string]any avec un constructeur, une méthode Get et une méthode Set, en tenant compte de l'accès concurrent (Mutex)

sobes.tech IA

Réponse de l'IA

go package cache

import "sync"

type Cache struct { mu sync.Mutex store map[string]any }

func NewCache() *Cache { return &Cache{ store: make(map[string]any), } }

func (c *Cache) Get(key string) (any, bool) { c.mu.Lock() defer c.mu.Unlock() val, ok := c.store[key] return val, ok }

func (c *Cache) Set(key string, value any) { c.mu.Lock() defer c.mu.Unlock() c.store[key] = value }


В этом примере структура Cache содержит map и mutex для защиты от конкурентного доступа. Методы Get и Set блокируют mutex на время операции, чтобы избежать гонок данных.