fix gocyclo warnings (#468)

This commit is contained in:
Kevin Wan
2021-02-17 14:01:05 +08:00
committed by GitHub
parent 87938bcc09
commit 38abfb80ed
3 changed files with 120 additions and 101 deletions

View File

@@ -77,32 +77,40 @@ func (t *Tree) next(n *node, route string, result *Result) bool {
for i := range route {
if route[i] == slash {
token := route[:i]
for _, children := range n.children {
for k, v := range children {
if r := match(k, token); r.found {
if t.next(v, route[i+1:], result) {
if r.named {
addParam(result, r.key, r.value)
}
return true
return n.forEach(func(k string, v *node) bool {
if r := match(k, token); r.found {
if t.next(v, route[i+1:], result) {
if r.named {
addParam(result, r.key, r.value)
}
return true
}
}
}
return false
return false
})
}
}
for _, children := range n.children {
for k, v := range children {
if r := match(k, route); r.found && v.item != nil {
result.Item = v.item
if r.named {
addParam(result, r.key, r.value)
}
return n.forEach(func(k string, v *node) bool {
if r := match(k, route); r.found && v.item != nil {
result.Item = v.item
if r.named {
addParam(result, r.key, r.value)
}
return true
}
return false
})
}
func (nd *node) forEach(fn func(string, *node) bool) bool {
for _, children := range nd.children {
for k, v := range children {
if fn(k, v) {
return true
}
}