← Anasayfa

Script Parametrelerinde $Null Kavramının Esnemeyen Çöküşü

Scripting, Hata ÇözümlemePowerShell

Genellikle kodda "Eğer çektiğim adamın şifresi Null (Boş/Hiçbir şey atanmamış) ise, ekrana yaz" deriz.

if ($Adam.Parola -eq $null) { Write-Host "Sifre yok!" }

İşte bu sistem mimarının fecaati demektir! Pester testleri kodun bu blokunda her zaman yanılır. Powershell de $null değeri, Dizilerin (array) ve boşlukların arasına gizlenip kaçabilecek kadar sinsi bir varoluştur.

Sol Taraf Null Hakimiyeti

Uzman kuralı bir evsellik katar: Kodda sorgular daima $null sol tarafa yazılarak çarpıştırılır!

if ($null -eq $Adam.Parola) { Write-Host "Kusursuz Sifre Tespit Edilemedi." }

Siz bunu dediğiniz zaman Powershell asla bir listeyi parçalayıp bu boş mu diye kafa karışıklığı (Pipeline bypass'ı) yaşamaz. Sıkı sıkıya sol cenahtaki Tanrısal (Boşluk) varlığını alır ve sizin o çektiğiniz veriye yapıştırarak net True çeker. Tüm büyük GitHub PowerShell projelerinde komut mimarileri daima NULL ile başlar.