Bagikan melalui


PossibleIncorrectUsageOfAssignmentOperator

Tingkat Keparahan : Informasi

Deskripsi

Dalam banyak bahasa pemrograman, operator kesetaraan ditandai sebagai == atau =, tetapi PowerShell menggunakan -eq. Oleh karena itu, dapat dengan mudah terjadi bahwa operator yang salah digunakan secara tidak sengaja. Aturan ini menangkap beberapa kasus khusus di mana kemungkinan itu cukup tinggi.

Aturan ini mencari penggunaan operator == dan = di dalam pernyataan if, else if, while dan do-while tetapi tidak memperingatkan jika ada jenis perintah atau ekspresi yang digunakan di sisi kanan karena ini mungkin berdasarkan desain.

Contoh

Salah

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

}

Benar

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 implisit menggunakan gaya Clang

Ada beberapa kasus langka di mana penugasan variabel di dalam pernyataan if dirancang. Alih-alih menekan aturan, seseorang juga dapat memberi sinyal bahwa penugasan disengaja dengan membungkus ekspresi dalam tanda kurung tambahan. Pengecualian untuk ini adalah ketika $null digunakan pada LHS karena tidak ada kasus penggunaan untuk ini.

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