about_Return
Korte beschrijving
Sluit het huidige bereik af. Dit kan een functie, script of scriptblok zijn.
Lange beschrijving
Het return
trefwoord sluit een functie, script of scriptblok af. Het kan worden gebruikt om een bereik op een bepaald punt af te sluiten, een waarde te retourneren of om aan te geven dat het einde van het bereik is bereikt.
Gebruikers die bekend zijn met talen zoals C of C# willen mogelijk het return
trefwoord gebruiken om de logica van het expliciet verlaten van een bereik te maken.
In PowerShell worden de resultaten van elke instructie geretourneerd als uitvoer, zelfs zonder een instructie die het trefwoord Return bevat. Talen zoals C of C# retourneren alleen de waarde of waarden die zijn opgegeven door het return
trefwoord.
Notitie
Vanaf PowerShell 5.0 heeft PowerShell taal toegevoegd voor het definiëren van klassen, met behulp van formele syntaxis. In de context van een PowerShell-klasse is er niets van een methode, behalve wat u opgeeft met behulp van een return
instructie. Meer informatie over PowerShell-klassen vindt u in about_Classes.
Syntaxis
De syntaxis voor het return
trefwoord is als volgt:
return [<expression>]
Het return
trefwoord kan alleen worden weergegeven, of het kan als volgt worden gevolgd door een waarde of expressie:
return
return $a
return (2 + $a)
Voorbeelden
In het volgende voorbeeld wordt het return
trefwoord gebruikt om een functie af te sluiten op een bepaald punt als aan een voorwaarde wordt voldaan. Oneven getallen worden niet vermenigvuldigd omdat de retourinstructie wordt afgesloten voordat deze instructie kan worden uitgevoerd.
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
In PowerShell kunnen waarden worden geretourneerd, zelfs als het return
trefwoord niet wordt gebruikt.
De resultaten van elke instructie worden geretourneerd. Met de volgende instructies wordt bijvoorbeeld de waarde van de $a
variabele geretourneerd:
$a
return
De volgende instructie retourneert ook de waarde van $a
:
return $a
Het volgende voorbeeld bevat een instructie die is bedoeld om de gebruiker te laten weten dat de functie een berekening uitvoert:
function calculation {
param ($value)
"Please wait. Working on calculation..."
$value += 73
return $value
}
$a = calculation 14
De "Een ogenblik geduld. Werken aan berekening... tekenreeks wordt niet weergegeven. In plaats daarvan wordt deze toegewezen aan de $a
variabele, zoals in het volgende voorbeeld:
PS> $a
Please wait. Working on calculation...
87
Zowel de informatieve tekenreeks als het resultaat van de berekening worden geretourneerd door de functie en toegewezen aan de $a
variabele.
Als u een bericht in uw functie wilt weergeven, vanaf PowerShell 5.0, kunt u de Information
stream gebruiken. De onderstaande code corrigeert het bovenstaande voorbeeld met behulp van de Write-Information
cmdlet met een InformationAction
van 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
Retourwaarden en de pijplijn
Wanneer u een verzameling uit uw scriptblok of functie retourneert, worden de leden automatisch uitgeschreven en doorgegeven via de pijplijn. Dit komt door de eenmalige verwerking van PowerShell. Zie about_pipelines voor meer informatie.
Dit concept wordt geïllustreerd door de volgende voorbeeldfunctie die een matrix met getallen retourneert. De uitvoer van de functie wordt doorgesluisd naar de Measure-Object
cmdlet waarmee het aantal objecten in de pijplijn wordt geteld.
function Test-Return
{
$array = 1,2,3
return $array
}
Test-Return | Measure-Object
Count : 3
Average :
Sum :
Maximum :
Minimum :
Property :
Als u wilt afdwingen dat een scriptblok of functie verzameling als één object naar de pijplijn retourneert, gebruikt u een van de volgende twee methoden:
Unaire matrixexpressie
Als u een unaire expressie gebruikt, kunt u de retourwaarde in de pijplijn als één object verzenden, zoals wordt geïllustreerd in het volgende voorbeeld.
function Test-Return { $array = 1,2,3 return (, $array) } Test-Return | Measure-Object
Count : 1 Average : Sum : Maximum : Minimum : Property :
Write-Output
met de parameter NoEnumerate .U kunt de
Write-Output
cmdlet ook gebruiken met de parameter NoEnumerate . In het onderstaande voorbeeld wordt deMeasure-Object
cmdlet gebruikt om de objecten te tellen die naar de pijplijn zijn verzonden vanuit de voorbeeldfunctie op basis van hetreturn
trefwoord.function Test-Return { $array = 1, 2, 3 return Write-Output -NoEnumerate $array } Test-Return | Measure-Object
Count : 1 Average : Sum : Maximum : Minimum : Property :
Zie ook
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor