我正在嘗試使用Go作為教程構(gòu)建一個(gè)基本的緩存系統(tǒng)。由于某種原因,當(dāng)我運(yùn)行這個(gè)時(shí),if else語句會(huì)導(dǎo)致錯(cuò)誤。package datasourceimport ( "fmt" "github.com/patrickmn/go-cache" "time")type DataSource interface { Value(key string) (interface{}, error)}// DataSourceStr type, implements the DataSource interfacetype DataSourceStr struct { data map[string]string}var cache = cache.New(5*time.Minute, 5*time.Minute)func (n *DataSourceStr) Value(key string) (interface{}, error) { /* 1. Compute a cache key 2. Search cache key 3. If hit return value 4. If miss, do datasource 5. Cache and return slow thing. */ cached, found := cache.Value(key) if found { return cached, nil } else if _, ok := n.data[key]; ok { //measure how often a key gets called. cache.Set(key, n.data[key], cache.DefaultExpiration) return n.data[key], nil } else { return nil, fmt.Errorf("key not found %v", ok) }}func getFromDS(datasource DataSource, key string) (string, error) { v, err := datasource.Value(key) //create a map that decays based on time. if err != nil { return "", nil } return fmt.Sprint(v), nil}我做錯(cuò)了什么?我正在嘗試輸入一個(gè)密鑰,然后從緩存或數(shù)據(jù)庫中返回值。不知道我在語法上做錯(cuò)了什么!
函數(shù)不適用于 if else 語句
寶慕林4294392
2022-08-01 16:53:45