Este producto no es compatible con el sitio Datadog seleccionado. ().
Esta página aún no está disponible en español. Estamos trabajando en su traducción.
Si tienes alguna pregunta o comentario sobre nuestro actual proyecto de traducción, no dudes en ponerte en contacto con nosotros.

Metadata

ID: go-best-practices/superfluous-else

Language: Go

Severity: Info

Category: Best Practices

Description

Sometimes, the else block of an if is unnecessary and can be avoided, especially when there is a return statement inside the if block will be executed and the function will terminate. Hence, there is no need to explicitly specify the else clause.

By removing the else clause, the code becomes more concise and easier to read. It eliminates redundancy and makes the intention of the code clearer.

To avoid such situations, it is a good coding practice to write code with the fewest possible branches. This makes the code easier to understand and minimizes the chance of introducing bugs.

Non-Compliant Code Examples

func main() {
    if foo {
        return
    } else {
        return 2
    }
}
func main() {
    if foo {
        println("foo")
        return
    } else {
        return 2
    }
}

func main() {
    if input == "abc" {
        return ""
    } else {
        if len(value) == 3 {
            return []string{fmt.Sprintf("%s", value[2])}
        } else {
            return []string{fmt.Sprintf("%d abc", len(value)}}
        }
    }
}

Compliant Code Examples

func main() {
    if foo {
        println("foo")
    } else {
        return 2
    }
}
func main() {
    if ret, err := Action(str); err != nil {
        return "", err
    } else {
        return Encode(ret), nil
    }
}
func main() {
    if ret, err := Action(str); err != nil {
        return "", err
    } else {
        return Encode(Encode2(ret, ret)), nil
    }
}
func main() {
    if ret, err := Action(str); err == nil {
        return Encode(ret), nil
    } else {
        return err
    }

    if bar, err := getBarOrErr(); err != nil {
        return nil, err
    } else {
        foo.baz = Baz(bar)
    }

    if bar, err := getBarOrErr(); err == nil {
        return bar;
    } else {
        baz.Baz(err);
    }
}
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Integraciones sin problemas. Prueba Datadog Code Security