Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tingkat Keparahan : Informasi
Deskripsi
Aturan ini mendeteksi saat pernyataan bersyarat menggunakan = atau == alih-alih operator kesetaraan PowerShell (-eq). Aturan mencari penggunaan dan === operator di dalam if, elseif, , whiledan do-while pernyataan. Di PowerShell, = mewakili operator penetapan dan -eq mewakili operator perbandingan kesetaraan.
Dalam banyak bahasa pemrograman, mewakili operator perbandingan kesetaraan. == Saat Anda menentukan == dalam ekspresi PowerShell, termasuk pernyataan bersyarat, PowerShell memunculkan kesalahan karena == bukan sintaks PowerShell yang valid. Aturan ini selalu menandai penggunaan dalam == pernyataan bersyarat. Namun, itu tidak menandai penggunaan = saat sisi kanan kondisional menggunakan perintah atau ekspresi apa pun.
Dalam kasus ini, kemungkinan penggunaan operator penugasan disengaja. Konstruksi ini sering digunakan untuk menetapkan nilai secara ringkas ke variabel atau properti di sisi kiri dan memeriksa apakah nilai yang ditetapkan dievaluasi sebagai true.
Supresi implisit menggunakan gaya Clang
Ada beberapa kasus langka di mana menetapkan variabel di dalam if pernyataan disengaja.
Alih-alih menekan aturan, Anda dapat memberi sinyal bahwa tugas disengaja dengan membungkus ekspresi dalam tanda kurung tambahan. Pengecualian berlaku saat $null digunakan di sisi kiri karena tidak ada kasus penggunaan untuk itu. Contohnya:
if (($shortVariableName = $SuperLongVariableName['SpecialItem']['AnotherItem'])) {
...
}
Contoh
Tidak sesuai
if ($a = $b)
{
...
}
if ($a == $b)
{
}
Sesuai
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
}