Do not check address to nil
Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel,
n'hésitez pas à nous contacter.
ID: go-best-practices/comparing-address-nil
Language: Go
Severity: Info
Category: Best Practices
Description
The code if &x == nil
is not recommended in Go and should be avoided.
Here are a few reasons why:
- Incorrect Comparison: In Go, comparing the address of a variable
&x
directly to nil
using ==
is not a valid or meaningful comparison. The address of a variable is a memory location and cannot be directly compared to nil
to check for its value. - Pointer Check: Comparing the address of a variable to
nil
using ==
does not accurately check if the variable itself is nil. It only checks if the address is null, not the value stored at that address. - Incorrect Usage of
nil
: In Go, nil
is typically used to check if a pointer or reference type is uninitialized or doesn’t point to a valid object. It is not meant to be used to compare the address of a variable.
To check if a variable is nil, you should directly compare its value to nil
without taking its address:
if x == nil {
// Code block
}
This is the correct and idiomatic way to check if a variable is nil in Go.
By avoiding the usage of &x == nil
and using x == nil
instead, you can write cleaner and more accurate code that adheres to Go’s best practices.
Non-Compliant Code Examples
func main() {
if &myVar == nil {
}
}
Compliant Code Examples
func main() {
var ptr *int = &myVar
if ptr == nil {
}
}