about_Return
Krátký popis
Ukončí aktuální obor, což může být funkce, skript nebo blok skriptu.
Dlouhý popis
Klíčové return
slovo ukončí blok funkce, skriptu nebo skriptu. Dá se použít k ukončení oboru v určitém bodě, k vrácení hodnoty nebo k označení, že byl dosažen konec oboru.
Uživatelé, kteří znají jazyky, jako je C nebo C#, můžou chtít použít return
klíčové slovo, aby logiku opuštění oboru explicitně opustili.
V PowerShellu se výsledky každého příkazu vrátí jako výstup, a to i bez příkazu, který obsahuje klíčové slovo Return. Jazyky jako C nebo C# vrací pouze hodnotu nebo hodnoty určené klíčovým slovem return
.
Poznámka:
Počínaje PowerShellem 5.0 jsme přidali jazyk PowerShellu pro definování tříd pomocí formální syntaxe. V kontextu třídy PowerShellu není výstupem metody kromě toho, co zadáte pomocí return
příkazu. Další informace o třídách PowerShellu najdete v about_Classes.
Syntaxe
Syntaxe klíčového return
slova je následující:
return [<expression>]
Klíčové return
slovo se může zobrazit samostatně, nebo za ním může následovat hodnota nebo výraz, a to následujícím způsobem:
return
return $a
return (2 + $a)
Příklady
Následující příklad používá return
klíčové slovo k ukončení funkce v určitém bodě, pokud je splněn podmíněný. Lichá čísla se nevynásobí, protože příkaz return se ukončí před provedením příkazu.
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
V PowerShellu je možné vrátit hodnoty i v případě, že return
se klíčové slovo nepoužívá.
Vrátí se výsledky každého příkazu. Například následující příkazy vrátí hodnotu $a
proměnné:
$a
return
Následující příkaz také vrátí hodnotu $a
:
return $a
Následující příklad obsahuje příkaz, který má uživateli dát vědět, že funkce provádí výpočet:
function calculation {
param ($value)
"Please wait. Working on calculation..."
$value += 73
return $value
}
$a = calculation 14
"Počkejte prosím. Práce na výpočtu..." řetězec se nezobrazuje. Místo toho je přiřazena k $a
proměnné, jak je znázorněno v následujícím příkladu:
PS> $a
Please wait. Working on calculation...
87
Informační řetězec i výsledek výpočtu vrátí funkce a přiřadí se $a
proměnné.
Pokud chcete ve své funkci zobrazit zprávu, která začíná v PowerShellu Information
5.0, můžete stream použít. Následující kód opraví výše uvedený příklad pomocí Write-Information
rutiny s příponou InformationAction
Continue.
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
Návratové hodnoty a kanál
Když vrátíte kolekci z bloku skriptu nebo funkce, PowerShell automaticky zruší registraci členů a předá je po jednom prostřednictvím kanálu. Důvodem je jednorázové zpracování PowerShellu. Další informace najdete v tématu about_pipelines.
Tento koncept je ilustrován následující ukázkovou funkcí, která vrací matici čísel. Výstup funkce se předá rutině Measure-Object
, která spočítá počet objektů v kanálu.
function Test-Return
{
$array = 1,2,3
return $array
}
Test-Return | Measure-Object
Count : 3
Average :
Sum :
Maximum :
Minimum :
Property :
Pokud chcete vynutit, aby blok skriptu nebo funkce vrátily kolekci jako jeden objekt do kanálu, použijte jednu z následujících dvou metod:
Unární maticový výraz
Pomocí unárního výrazu můžete odeslat vrácenou hodnotu kanálu jako jeden objekt, jak je znázorněno v následujícím příkladu.
function Test-Return { $array = 1,2,3 return (, $array) } Test-Return | Measure-Object
Count : 1 Average : Sum : Maximum : Minimum : Property :
Write-Output
s parametrem NoEnumerate .Rutinu
Write-Output
můžete použít také s parametrem NoEnumerate . Následující příklad používá rutinuMeasure-Object
k počítání objektů odeslaných do kanálu z ukázkové funkce klíčovým slovemreturn
.function Test-Return { $array = 1, 2, 3 return Write-Output -NoEnumerate $array } Test-Return | Measure-Object
Count : 1 Average : Sum : Maximum : Minimum : Property :
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro