Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 return klíčové slovo. 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í rutiny Write-Information s InformationAction nastaveným na Continue.
function Calculation {
param ($Value)
Write-Information "Please wait. Working on calculation..." -InformationAction Continue
$Value += 73
return $Value
}
Teď se informační zpráva zobrazí v hostiteli a nepřiřazuje se k proměnné.
PS> $a = Calculation 14
Please wait. Working on calculation...
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-ObjectCount : 1 Average : Sum : Maximum : Minimum : Property :Write-Outputs parametrem NoEnumerate .Rutinu
Write-Outputmůžete použít také s parametrem NoEnumerate . Následující příklad používá rutinuMeasure-Objectk 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-ObjectCount : 1 Average : Sum : Maximum : Minimum : Property :