Powershell Fonksiyon Dönüş Değeri
Eylemler hazırlama SharePoint Ekip siteleri içeren bir dizi gerçekleştiren PowerShell bir fonksiyon geliştirdim. Sonuçta, işlevi görevim sonunda aşağıdaki kodu var ve bu yüzden bir Dize olarak hazırlanan sitenin URL dönmek istiyorum:
$rs = $url.ToString();
return $rs;
Bu fonksiyonu çağıran bir kod gibi görünüyor:
$returnURL = MyFunction -param 1 ...
Değil ancak bir Dize bekliyorum. Bunun yerine, Sistem türü bir nesnedir.Yönetim.Otomasyon.PSMethod. Neden String tipi yerine bu tip dönüyor?
Teşekkürler
CEVAP
PowerShell en azından daha geleneksel bir programlama açısından bakıldığında gerçekten tuhaf iade semantiği vardır. İki ana fikir başınızın etrafında sarmak için vardır:
- Tüm çıkış yakalanır ve geri döndü
- Return anahtar sözcüğü gerçekten mantıklı bir çıkış noktası gösterir
Böylece, aşağıdaki iki komut dosyası blokları aynı şeyi etkili bir şekilde yapacağız:
$a = "Hello, World"
return $a
$a = "Hello, World"
$a
return
İkinci örnekte bir değişken $boru hattının üzerine çıktı ve belirtildiği gibi, çıkış döndürülür bütün olarak bırakılır. İkinci örnekte aslında, dönüş tamamen ihmal edebilir ve aynı davranışı (dönüş işlevi doğal olarak tamamlar ve çıkar çıkmaz da zımni olabilir).
İşlev tanımı daha olmadan PSMethod bir nesne alıyorsanız neden olduğunu söyleyemem. Benim tahminim muhtemelen bir kaç satır o yakalanır ve çıkış boru hattı üzerine yerleştirilmiş bir şey var.
Ayrıca fazlalaştımuhtemelentek bir çizgi üzerinde iç içe geçmiş birden çok ifadeler olmadıkça o noktalı gerek yok.
Dönüş semantiği hakkında daha fazla kendini powershell'den help return
komutunu çağırarak TechNet about_Return sayfada ya da okuyabilirsiniz.
Ne kadar zarif hesapların yapılabilmes...
PowerShell, nasıl bir dosyada bir fonk...
İş parçacığı, gelen bir dönüş değeri...
Bir fonksiyon, sadece bir "dönüş" ifad...
Eğer Spring MVC denetleyicisi yöntemi&...