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.
Metadata
ID:ruby-best-practices/parallel-assignment
Language: Ruby
Severity: Notice
Category: Best Practices
Description
The rule “Do not use parallel assignment to define variables” is a guideline that encourages developers to avoid assigning multiple variables in a single line. This practice is often referred to as “parallel assignment” or “multiple assignment”.
Parallel assignment can lead to code that is difficult to read and understand, especially when complex expressions are involved. It can also lead to unexpected results if the order of evaluation is not clear.
To adhere to this rule, you should assign each variable individually, on its own line. This makes your code more readable and maintainable. For example, instead of writing a, b = 1, 2, you should write a = 1 and b = 2 on separate lines. However, there are exceptions to this rule. Parallel assignment is acceptable when swapping two variables, when assigning the return values of a method, or when using the splat operator to assign multiple values to a single variable.
Non-Compliant Code Examples
# Parallel assignments of literal values.t,f,n=true,false,nili,f,c,r=123,1.0,1i,2.0rs,d,i,h='uno',"dos","tres#{cuatro}cinco",<<HERE
seisHEREs,i=:foo,:"bar#{baz}"r1,r2=/cuatro/,/cinco#{seis}/im
Compliant Code Examples
# Single assignments of literal values.t=truef=falsei=123s="dos"i=:"bar#{baz}"r=/cuatro/im# Variable swapa=123b=456a,b=b,a# method returndefmulti[1,2]endfirst,second=multi# Splatfirst,*rest=[1,2,3]first,*rest=1,2,3
Seamless integrations. Try Datadog Code Analysis
Datadog Code Analysis
Try this rule and analyze your code with Datadog Code Analysis
How to use this rule
1
2
rulesets:- ruby-best-practices # Rules to enforce Ruby best practices.
Create a static-analysis.datadog.yml with the content above at the root of your repository
Use our free IDE Plugins or add Code Analysis scans to your CI pipelines