about_Return
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 blok skryptu. 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 Write-Information
polecenia cmdlet z funkcją InformationAction
Kontynuuj.
function calculation {
param ($value)
Write-Information "Please wait. Working on calculation..." -InformationAction Continue
$value += 73
return $value
}
$a = calculation 14
Please wait. Working on calculation...
C:\PS> $a
87
Wartości zwracane i potok
Po powrocie kolekcji z bloku lub funkcji skryptu 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-Object
Count : 1 Average : Sum : Maximum : Minimum : Property :
Write-Output
z parametrem NoEnumerate .Możesz również użyć
Write-Output
polecenia cmdlet z parametrem NoEnumerate . W poniższym przykładzieMeasure-Object
uż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-Object
Count : 1 Average : Sum : Maximum : Minimum : Property :
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla