about_Return
Descrizione breve
Esce dall'ambito corrente, che può essere una funzione, uno script o un blocco di script.
Descrizione lunga
La return
parola chiave esce da una funzione, uno script o un blocco di script. Può essere usato per uscire da un ambito in un punto specifico, per restituire un valore o per indicare che è stata raggiunta la fine dell'ambito.
Gli utenti che hanno familiarità con linguaggi come C o C# potrebbero voler usare la return
parola chiave per rendere esplicita la logica di lasciare un ambito esplicito.
In PowerShell i risultati di ogni istruzione vengono restituiti come output, anche senza un'istruzione contenente la parola chiave Return. I linguaggi come C o C# restituiscono solo il valore o i valori specificati dalla return
parola chiave .
Nota
A partire da PowerShell 5.0, PowerShell ha aggiunto il linguaggio per la definizione delle classi usando la sintassi formale. Nel contesto di una classe PowerShell, non viene restituito alcun output da un metodo, ad eccezione di quello specificato tramite un'istruzione return
. Per altre informazioni sulle classi di PowerShell, vedere about_Classes.
Sintassi
La sintassi per la return
parola chiave è la seguente:
return [<expression>]
La return
parola chiave può essere visualizzata da sola oppure può essere seguita da un valore o da un'espressione, come indicato di seguito:
return
return $a
return (2 + $a)
Esempi
Nell'esempio seguente viene usata la return
parola chiave per uscire da una funzione in un punto specifico se viene soddisfatta una condizionale. I numeri dispari non vengono moltiplicati perché l'istruzione return viene chiusa prima che tale istruzione possa essere eseguita.
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 i valori possono essere restituiti anche se la return
parola chiave non viene usata.
Vengono restituiti i risultati di ogni istruzione. Ad esempio, le istruzioni seguenti restituiscono il valore della $a
variabile:
$a
return
L'istruzione seguente restituisce anche il valore di $a
:
return $a
L'esempio seguente include un'istruzione destinata a informare l'utente che la funzione sta eseguendo un calcolo:
function calculation {
param ($value)
"Please wait. Working on calculation..."
$value += 73
return $value
}
$a = calculation 14
Il "Per favore aspettate. Lavoro sul calcolo..." stringa non visualizzata. Al contrario, viene assegnato alla $a
variabile, come nell'esempio seguente:
PS> $a
Please wait. Working on calculation...
87
Sia la stringa informativa che il risultato del calcolo vengono restituiti dalla funzione e assegnati alla $a
variabile.
Se si vuole visualizzare un messaggio all'interno della funzione, a partire da PowerShell 5.0, è possibile usare il Information
flusso. Il codice seguente corregge l'esempio precedente usando il Write-Information
cmdlet con un InformationAction
oggetto 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
Restituire i valori e la pipeline
Quando si restituisce una raccolta dal blocco di script o dalla funzione, PowerShell annulla automaticamente la registrazione dei membri e li passa uno alla volta attraverso la pipeline. Ciò è dovuto all'elaborazione one-at-a-time di PowerShell. Per altre informazioni, vedere about_pipelines.
Questo concetto è illustrato dalla funzione di esempio seguente che restituisce una matrice di numeri. L'output della funzione viene inviato tramite pipe al Measure-Object
cmdlet che conta il numero di oggetti nella pipeline.
function Test-Return
{
$array = 1,2,3
return $array
}
Test-Return | Measure-Object
Count : 3
Average :
Sum :
Maximum :
Minimum :
Property :
Per forzare un blocco di script o una funzione a restituire una raccolta come singolo oggetto alla pipeline, usare uno dei due metodi seguenti:
Espressione di matrice unaria
L'utilizzo di un'espressione unaria consente di inviare il valore restituito alla pipeline come singolo oggetto, come illustrato nell'esempio seguente.
function Test-Return { $array = 1,2,3 return (, $array) } Test-Return | Measure-Object
Count : 1 Average : Sum : Maximum : Minimum : Property :
Write-Output
con il parametro NoEnumerate .È anche possibile usare il
Write-Output
cmdlet con il parametro NoEnumerate . L'esempio seguente usa ilMeasure-Object
cmdlet per contare gli oggetti inviati alla pipeline dalla funzione di esempio tramite lareturn
parola chiave .function Test-Return { $array = 1, 2, 3 return Write-Output -NoEnumerate $array } Test-Return | Measure-Object
Count : 1 Average : Sum : Maximum : Minimum : Property :
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per