This product is not supported for your selected Datadog site. ().
이 페이지는 아직 영어로 제공되지 않습니다. 번역 작업 중입니다. 현재 번역 프로젝트에 대한 질문이나 피드백이 있으신 경우 언제든지 연락주시기 바랍니다.
Metadata
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 ofnil: 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:
ifx==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
funcmain(){if&myVar==nil{}}
Compliant Code Examples
funcmain(){varptr*int=&myVarifptr==nil{}}
원활한 통합. Datadog Code Security를 경험해 보세요
Datadog Code Security
이 규칙을 사용해 Datadog Code Security로 코드를 분석하세요
규칙 사용 방법
1
2
rulesets:- go-best-practices # Rules to enforce Go best practices.
리포지토리 루트에 위의 내용을 포함하는 static-analysis.datadog.yml을 만듭니다
무료 IDE 플러그인을 사용하거나 CI 파이프라인에 Code Security 검사를 추가합니다