PossibleIncorrectUsageOfAssignmentOperator

심각도 수준: 정보

묘사

이 규칙은 조건문이 PowerShell 등호자 (=)를 사용 ==-eq 하거나 대신 사용할 경우를 감지합니다. 이 규칙은 , ==, =if , 그리고 명장 내에서 elseifwhile 연산자의 사용 do-while 법을 찾습니다. PowerShell에서 는 =할당 연산자 를, -eq평등 비교 연산자를 나타냅니다.

많은 프로그래밍 언어에서 는 == 등식 비교 연산자를 나타냅니다. PowerShell 표현식에서 조건문까지 정의 == 하면, PowerShell은 해당 문법이 유효하지 않기 때문에 == 오류를 발생시킵니다. 이 규칙은 항상 조건문에서 의 == 사용을 표시합니다. 하지만 = 조건문 오른쪽에서 명령어나 표현식을 사용할 때는 사용되지 않습니다.

이 경우 할당 연산자 사용은 의도적인 것일 가능성이 큽니다. 이 구성은 왼쪽 변수나 속성에 간결하게 값을 할당 하고, 할당된 값이 참으로 평가되는지 확인하는 데 자주 사용됩니다.

Clang 스타일을 사용한 암시적 표시 안 함

문장 안에 if 변수를 할당하는 경우는 드물게 존재합니다. 규칙을 억제하는 대신, 표현을 추가 괄호로 감싸서 과제가 의도적임을 표시할 수 있습니다. 왼쪽에서 사용할 경우 $null 에는 예외가 적용되는데, 이는 사용 사례가 없기 때문입니다. 다음은 그 예입니다.

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

본보기

비준수

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

}

Compliant

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
}