यदि अन्य स्टेटमेंट [डुप्लिकेट]
मैं गो के साथ एक बुनियादी कैश सिस्टम बनाने की कोशिश कर रहा हूं।
किसी कारण से जब मैं इसे चलाता हूं, तो अन्य कथन में त्रुटि होती है।
package datasource
import (
"fmt"
"github.com/patrickmn/go-cache"
"time"
)
type DataSource interface {
Value(key string) (interface{}, error)
}
// DataSourceStr type, implements the DataSource interface
type 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
}
मैं क्या गलत कर रहा हूं? मैं एक कुंजी दर्ज करने का प्रयास कर रहा हूं, फिर कैश या डेटाबेस से मान लौटाएं। यकीन नहीं है कि मैंने सिंटैक्स के साथ क्या गलत किया है!
जवाब
1 heheh
सशर्त विवरण निम्न सिंटैक्स का अनुसरण करते हैं
if something{
......
} else if something{
......
} else{
......
}
एक विस्तृत जवाब