From e52386b52dbc12a647a73533ed63d087c3112573 Mon Sep 17 00:00:00 2001 From: fuxiaohei Date: Tue, 15 Jul 2014 10:01:26 +0800 Subject: [PATCH] code style simplify --- config/json.go | 67 ++++++++++++++++++++------------------------------ 1 file changed, 26 insertions(+), 41 deletions(-) diff --git a/config/json.go b/config/json.go index 332280f4..dbab41b0 100644 --- a/config/json.go +++ b/config/json.go @@ -29,13 +29,13 @@ func (js *JsonConfig) Parse(filename string) (ConfigContainer, error) { return nil, err } defer file.Close() - x := &JsonConfigContainer{ - data: make(map[string]interface{}), - } content, err := ioutil.ReadAll(file) if err != nil { return nil, err } + x := &JsonConfigContainer{ + data: make(map[string]interface{}), + } err = json.Unmarshal(content, &x.data) if err != nil { var wrappingArray []interface{} @@ -61,12 +61,10 @@ func (c *JsonConfigContainer) Bool(key string) (bool, error) { if val != nil { if v, ok := val.(bool); ok { return v, nil - } else { - return false, errors.New("not bool value") } - } else { - return false, errors.New("not exist key:" + key) + return false, errors.New("not bool value") } + return false, errors.New("not exist key:" + key) } // Int returns the integer value for a given key. @@ -75,12 +73,10 @@ func (c *JsonConfigContainer) Int(key string) (int, error) { if val != nil { if v, ok := val.(float64); ok { return int(v), nil - } else { - return 0, errors.New("not int value") } - } else { - return 0, errors.New("not exist key:" + key) + return 0, errors.New("not int value") } + return 0, errors.New("not exist key:" + key) } // Int64 returns the int64 value for a given key. @@ -89,12 +85,10 @@ func (c *JsonConfigContainer) Int64(key string) (int64, error) { if val != nil { if v, ok := val.(float64); ok { return int64(v), nil - } else { - return 0, errors.New("not int64 value") } - } else { - return 0, errors.New("not exist key:" + key) + return 0, errors.New("not int64 value") } + return 0, errors.New("not exist key:" + key) } // Float returns the float value for a given key. @@ -103,12 +97,10 @@ func (c *JsonConfigContainer) Float(key string) (float64, error) { if val != nil { if v, ok := val.(float64); ok { return v, nil - } else { - return 0.0, errors.New("not float64 value") } - } else { - return 0.0, errors.New("not exist key:" + key) + return 0.0, errors.New("not float64 value") } + return 0.0, errors.New("not exist key:" + key) } // String returns the string value for a given key. @@ -117,12 +109,9 @@ func (c *JsonConfigContainer) String(key string) string { if val != nil { if v, ok := val.(string); ok { return v - } else { - return "" } - } else { - return "" } + return "" } // Strings returns the []string value for a given key. @@ -143,9 +132,8 @@ func (c *JsonConfigContainer) DIY(key string) (v interface{}, err error) { val := c.getdata(key) if val != nil { return val, nil - } else { - return nil, errors.New("not exist key") } + return nil, errors.New("not exist key") } // section.key or key @@ -155,24 +143,21 @@ func (c *JsonConfigContainer) getdata(key string) interface{} { if len(key) == 0 { return nil } - sectionkey := strings.Split(key, "::") - if len(sectionkey) >= 2 { - cruval, ok := c.data[sectionkey[0]] - if !ok { - return nil - } - for _, key := range sectionkey[1:] { - if v, ok := cruval.(map[string]interface{}); !ok { - return nil - } else if cruval, ok = v[key]; !ok { - return nil + sectionKey := strings.Split(key, "::") + if len(sectionKey) >= 2 { + if curValue, ok := c.data[sectionKey[0]]; ok { + for _, key := range sectionKey[1:] { + if v, ok := curValue.(map[string]interface{}); ok { + if v2, ok := v[key]; ok { + return v2 + } + } } } - return cruval - } else { - if v, ok := c.data[key]; ok { - return v - } + return nil + } + if v, ok := c.data[key]; ok { + return v } return nil }