Compartir a través de


PossibleIncorrectUsageOfAssignmentOperator

Nivel de gravedad de : de información

Descripción

En muchos lenguajes de programación, el operador de igualdad se denota como == o =, pero PowerShell usa -eq. Por lo tanto, puede ocurrir fácilmente que el operador incorrecto se usa involuntariamente. Esta regla detecta algunos casos especiales en los que la probabilidad de que sea bastante alta.

La regla busca usos de == y operadores de = dentro de if, else if, while y do-while instrucciones, pero no advierte si se usa algún tipo de comando o expresión en el lado derecho, ya que probablemente esto es por diseño.

Ejemplo

Incorrecto

if ($a = $b)
{
    ...
}
if ($a == $b)
{

}

Correcto

if ($a -eq $b) # Compare $a with $b
{
    ...
}
if ($a = Get-Something) # Only execute action if command returns something and assign result to variable
{
    Do-SomethingWith $a
}

Supresión implícita mediante el estilo Clang

Hay algunos casos poco frecuentes en los que la asignación de variable dentro de una instrucción if es por diseño. En lugar de suprimir la regla, también puede indicar que la asignación fue intencionada ajustando la expresión entre paréntesis adicional. Una excepción para esto es cuando se usa $null en el LHS porque no hay ningún caso de uso para esto.

if (($shortVariableName = $SuperLongVariableName['SpecialItem']['AnotherItem']))
{
    ...
}