- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
ID: ruby-best-practices/disjunctive-assign-in-const
Language: Ruby
Severity: Notice
Category: Best Practices
This rule pertains to the practice of avoiding unnecessary disjunctive (or conditional) assignments in class constructors in Ruby. A disjunctive assignment, denoted by ||=
, is a shorthand way of saying “if this variable is nil
or false
, assign it this value; otherwise, leave it as it is.” While this can be a useful tool in some instances, using it in a class constructor can lead to confusing and unexpected behavior.
The main reason to avoid this practice is that it can lead to unexpected values for instance variables. In the non-compliant code example, if @foo
somehow has a value before the constructor is called, that value will be preserved instead of being set to 42
as might be expected. This can make debugging more difficult and lead to subtle, hard-to-find bugs.
To avoid this issue, assign the value directly in the constructor, as shown in the compliant code example. This ensures that the instance variable will always have the expected value when the constructor is finished. It’s a small change, but it can make your code much easier to understand and debug.
def initialize
@foo ||= 42
end
def initialize
@foo = 42
end
|
|
For more information, please read the Code Analysis documentation
Identify code vulnerabilities directly in yourVS Code editor
Identify code vulnerabilities directly inJetBrains products