Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Krótki opis
Zamyka bieżący zakres, który może być funkcją, skryptem lub blokiem skryptu.
Długi opis
Słowo return kluczowe zamyka funkcję, skrypt lub skryptblock. Może służyć do zamykania zakresu w określonym punkcie, zwracania wartości lub wskazywania, że osiągnięto koniec zakresu.
Użytkownicy, którzy znają języki, takie jak C lub C#, mogą chcieć użyć return słowa kluczowego , aby logika pozostawienia zakresu było jawne.
W programie PowerShell wyniki każdej instrukcji są zwracane jako dane wyjściowe, nawet bez instrukcji zawierającej słowo kluczowe return. Języki takie jak C lub C# zwracają tylko wartość lub wartości określone przez return słowo kluczowe.
Uwaga
Począwszy od programu PowerShell 5.0, program PowerShell dodał język do definiowania klas przy użyciu składni formalnej. W kontekście klasy programu PowerShell nic nie jest danymi wyjściowymi metody, z wyjątkiem tego, co określa się za pomocą instrukcji return . Więcej informacji na temat klas programu PowerShell można przeczytać w about_Classes.
Składnia
Składnia słowa kluczowego return jest następująca:
return [<expression>]
Słowo return kluczowe może być wyświetlane samodzielnie lub może być zgodne z wartością lub wyrażeniem w następujący sposób:
return
return $a
return (2 + $a)
Przykłady
W poniższym przykładzie użyto return słowa kluczowego , aby zamknąć funkcję w określonym punkcie, jeśli zostanie spełniony warunek. Nieparzyste liczby nie są mnożone, ponieważ instrukcja return kończy działanie przed wykonaniem tej instrukcji.
function MultiplyEven
{
param($Number)
if ($Number % 2) { return "$Number is not even" }
$Number * 2
}
1..10 | ForEach-Object {MultiplyEven -Number $_}
1 is not even
4
3 is not even
8
5 is not even
12
7 is not even
16
9 is not even
20
W programie PowerShell wartości można zwracać nawet wtedy, gdy return słowo kluczowe nie jest używane.
Zwracane są wyniki każdej instrukcji. Na przykład następujące instrukcje zwracają wartość zmiennej $a :
$a
return
Poniższa instrukcja zwraca również wartość elementu $a:
return $a
Poniższy przykład zawiera instrukcję przeznaczoną do powiadom użytkownika, że funkcja wykonuje obliczenia:
function Calculation {
param ($Value)
"Please wait. Working on calculation..."
$Value += 73
return $Value
}
$a = Calculation 14
"Czekaj. Praca nad obliczeniami..." ciąg nie jest wyświetlany. Zamiast tego jest przypisywany do zmiennej $a , jak w poniższym przykładzie:
PS> $a
Please wait. Working on calculation...
87
Zarówno ciąg informacyjny, jak i wynik obliczenia są zwracane przez funkcję i przypisane do zmiennej $a .
Jeśli chcesz wyświetlić komunikat w funkcji, począwszy od programu PowerShell 5.0, możesz użyć strumienia Information . Poniższy kod poprawia powyższy przykład przy użyciu polecenia cmdlet Write-Information ze zmienną InformationAction ustawioną na Continue.
function Calculation {
param ($Value)
Write-Information "Please wait. Working on calculation..." -InformationAction Continue
$Value += 73
return $Value
}
Teraz komunikat informacyjny, który ma być wyświetlony na hoście, nie jest przypisany do zmiennej.
PS> $a = Calculation 14
Please wait. Working on calculation...
PS> $a
87
Wartości zwracane i potok
Po powrocie kolekcji ze skryptu lub funkcji program PowerShell automatycznie wyrejestruje elementy członkowskie i przekazuje je pojedynczo przez potok. Jest to spowodowane jednorazowym przetwarzaniem programu PowerShell. Aby uzyskać więcej informacji, zobacz about_Pipelines.
Ta koncepcja jest zilustrowana następującą przykładową funkcją, która zwraca tablicę liczb. Dane wyjściowe funkcji są przesyłane potokiem do Measure-Object polecenia cmdlet, które zlicza liczbę obiektów w potoku.
function Test-Return
{
$array = 1,2,3
return $array
}
Test-Return | Measure-Object
Count : 3
Average :
Sum :
Maximum :
Minimum :
Property :
Aby wymusić zwrócenie kolekcji jako pojedynczego obiektu do potoku, użyj jednej z następujących dwóch metod:
Wyrażenie tablicy jednoargumentowej
Korzystając z wyrażenia jednoargumentowego, możesz wysłać wartość zwracaną w dół potoku jako pojedynczy obiekt, jak pokazano w poniższym przykładzie.
function Test-Return { $array = 1,2,3 return (, $array) } Test-Return | Measure-ObjectCount : 1 Average : Sum : Maximum : Minimum : Property :Write-Outputz parametrem NoEnumerate .Możesz również użyć
Write-Outputpolecenia cmdlet z parametrem NoEnumerate . W poniższym przykładzieMeasure-Objectużyto polecenia cmdlet do zliczania obiektów wysyłanych do potoku z przykładowej funkcji za pomocą słowa kluczowegoreturn.function Test-Return { $array = 1, 2, 3 return Write-Output -NoEnumerate $array } Test-Return | Measure-ObjectCount : 1 Average : Sum : Maximum : Minimum : Property :