optimize nested conditional (#709)

master
Kevin Wan 4 years ago committed by GitHub
parent 8998f16054
commit aaa3623404
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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

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

Loading…
Cancel
Save