瀏覽代碼

optimize nested conditional (#709)

Kevin Wan 3 年之前
父節點
當前提交
aaa3623404
共有 2 個文件被更改,包括 17 次插入14 次删除
  1. 15 12
      core/search/tree.go
  2. 2 2
      core/stores/sqlx/utils.go

+ 15 - 12
core/search/tree.go

@@ -100,6 +100,7 @@ func (t *Tree) next(n *node, route string, result *Result) bool {
 		if route[i] != slash {
 			continue
 		}
+
 		token := route[:i]
 		return n.forEach(func(k string, v *node) bool {
 			r := match(k, token)
@@ -163,21 +164,23 @@ func add(nd *node, route string, item interface{}) error {
 	}
 
 	for i := range route {
-		if route[i] == slash {
-			token := route[:i]
-			children := nd.getChildren(token)
-			if child, ok := children[token]; ok {
-				if child != nil {
-					return add(child, route[i+1:], item)
-				}
-
-				return errInvalidState
+		if route[i] != slash {
+			continue
+		}
+
+		token := route[:i]
+		children := nd.getChildren(token)
+		if child, ok := children[token]; ok {
+			if child != nil {
+				return add(child, route[i+1:], item)
 			}
 
-			child := newNode(nil)
-			children[token] = child
-			return add(child, route[i+1:], item)
+			return errInvalidState
 		}
+
+		child := newNode(nil)
+		children[token] = child
+		return add(child, route[i+1:], item)
 	}
 
 	children := nd.getChildren(route)

+ 2 - 2
core/stores/sqlx/utils.go

@@ -53,9 +53,9 @@ func format(query string, args ...interface{}) (string, error) {
 	}
 
 	var b strings.Builder
-	argIndex := 0
-
+	var argIndex int
 	bytes := len(query)
+
 	for i := 0; i < bytes; i++ {
 		ch := query[i]
 		switch ch {