심각도 수준: 정보
묘사
이 규칙은 조건문이 PowerShell 등호자 (=)를 사용 ==-eq 하거나 대신 사용할 경우를 감지합니다. 이 규칙은 , ==, =if , 그리고 명장 내에서 elseif와 while 연산자의 사용 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
}