10.04.2023

Powershell'de tür dönüşümü (casting)

Birçok programlama ortamında tür dönüşümü eşittir işaretinin sağında yapılır. Ama powershell'de bu iş eşittirin solunda da yapılıyor. Bunun sebebiyle ilgili bulduğum çok güzel bir açıklamayı[1] paylaşmak istiyorum.

Varsayalım bir xml dosyamız var, diskte kayıtlı (dosya.xml). Bu xml dosyamızı okuyup bir değişkene atmak istiyoruz. Ama değişkenimizin de xml tipinde bir değişken olmasını istiyoruz. Diğer programlama ortamlarından alışık olduğumuz durum şu olabilir:

PS> $x = [xml]Get-Content -Path dosya.xml

Bu yanlış bir ifade olurdu. [xml] tür dönüşümü yapmak istediğimiz veri, dosya.xml dosyası okunduktan sonra Get-Content cmdlet'inin döndüğü tüm veri olduğundan burada bir parantez kullanmalıyız. Yani;

PS> $x = [xml](Get-Content -Path dosya.xml)

Bu şekilde x değişkenine atanan verinin xml türünde olması sağlanabilir. Ama powershell'de bu iş şu şekilde yapılıyor:

PS> [xml]$x = Get-Content -Path dosya.xml

Bu şekilde x değişkenimizin türü xml olarak oluşturulmuş. Sonrasında bu değişkene yapılacak atamaların da otomatik xml'e dönüştürülmesi sağlanmış.

---

[1] https://stackoverflow.com/questions/11685265/casting-in-powershell-weird-syntax

Hiç yorum yok: