optimize nested conditional (#709)

This commit is contained in:
Kevin Wan 2021-05-22 23:18:38 +08:00 committed by GitHub
parent 8998f16054
commit aaa3623404
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 13 deletions

View File

@ -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)
}
if route[i] != slash {
continue
}
return errInvalidState
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)

View File

@ -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 {