SORU
23 NİSAN 2012, PAZARTESİ


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
23 NİSAN 2012, PAZARTESİ


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • LounaTutorials

    LounaTutoria

    10 EYLÜL 2009
  • Malwarebytes

    Malwarebytes

    22 Temmuz 2007
  • The Onion

    The Onion

    14 Mart 2006