Partager via


about_Return

Description courte

Quitte l'étendue active (fonction, script ou bloc de script).

Description longue

Le return mot clé quitte une fonction, un script ou un bloc de script. Il peut être utilisé pour quitter une étendue à un point spécifique, retourner une valeur ou indiquer que la fin de l’étendue a été atteinte.

Les utilisateurs familiarisés avec des langages tels que C ou C# peuvent utiliser le return mot clé pour rendre la logique de laisser une étendue explicite.

Dans PowerShell, les résultats de chaque instruction sont retournés sous forme de sortie, même sans instruction qui contient le mot clé return. Les langages comme C ou C# retournent uniquement la valeur ou les valeurs spécifiées par le return mot clé.

Remarque

À compter de PowerShell 5.0, PowerShell a ajouté le langage pour définir des classes à l’aide de la syntaxe formelle. Dans le contexte d’une classe PowerShell, rien n’est sortie d’une méthode, sauf ce que vous spécifiez à l’aide d’une return instruction. Vous pouvez en savoir plus sur les classes PowerShell dans about_Classes.

Syntaxe

La syntaxe du return mot clé est la suivante :

return [<expression>]

Le return mot clé peut apparaître seul, ou il peut être suivi d’une valeur ou d’une expression, comme suit :

return
return $a
return (2 + $a)

Exemples

L’exemple suivant utilise le return mot clé pour quitter une fonction à un point spécifique si une condition est remplie. Les nombres impairs ne sont pas multipliés, car l’instruction return se termine avant que cette instruction ne puisse s’exécuter.

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

Dans PowerShell, les valeurs peuvent être retournées même si le return mot clé n’est pas utilisé. Les résultats de chaque instruction sont retournés. Par exemple, les instructions suivantes retournent la valeur de la $a variable :

$a
return

L’instruction suivante retourne également la valeur de $a:

return $a

L’exemple suivant inclut une instruction destinée à informer l’utilisateur que la fonction effectue un calcul :

function Calculation {
    param ($Value)

    "Please wait. Working on calculation..."
    $Value += 73
    return $Value
}

$a = Calculation 14

Le "S’il vous plaît attendre. Travailler sur le calcul... la chaîne n’est pas affichée. Au lieu de cela, elle est affectée à la $a variable, comme dans l’exemple suivant :

PS> $a
Please wait. Working on calculation...
87

La chaîne d’information et le résultat du calcul sont retournés par la fonction et affectés à la $a variable.

Si vous souhaitez afficher un message dans votre fonction, à partir de PowerShell 5.0, vous pouvez utiliser le Information flux. Le code ci-dessous corrige l’exemple ci-dessus à l’aide de l’applet de commande Write-Information avec un InformationAction défini sur Continue.

function Calculation {
    param ($Value)

    Write-Information "Please wait. Working on calculation..." -InformationAction Continue
    $Value += 73
    return $Value
}

Maintenant, le message d'information à afficher dans l'hôte n'est pas affecté à la variable.

PS> $a = Calculation 14
Please wait. Working on calculation...
PS> $a
87

Retourner des valeurs et le pipeline

Lorsque vous retournez une collection à partir de votre bloc de script ou de votre fonction, PowerShell désinscrit automatiquement les membres et les transmet un à la fois via le pipeline. Cela est dû au traitement unique à temps de PowerShell. Pour plus d’informations, consultez about_Pipelines.

Ce concept est illustré par l’exemple de fonction suivant qui retourne un tableau de nombres. La sortie de la fonction est redirigée vers l’applet Measure-Object de commande qui compte le nombre d’objets dans le pipeline.

function Test-Return
{
    $array = 1,2,3
    return $array
}
Test-Return | Measure-Object
Count    : 3
Average  :
Sum      :
Maximum  :
Minimum  :
Property :

Pour forcer un bloc de script ou une fonction à retourner une collection en tant qu’objet unique au pipeline, utilisez l’une des deux méthodes suivantes :

  • Expression de tableau unaire

    L’utilisation d’une expression unaire vous permet d’envoyer votre valeur de retour vers le bas du pipeline en tant qu’objet unique, comme illustré par l’exemple suivant.

    function Test-Return
    {
        $array = 1,2,3
        return (, $array)
    }
    Test-Return | Measure-Object
    
    Count    : 1
    Average  :
    Sum      :
    Maximum  :
    Minimum  :
    Property :
    
  • Write-Output avec le paramètre NoEnumerate .

    Vous pouvez également utiliser l’applet Write-Output de commande avec le paramètre NoEnumerate . L’exemple ci-dessous utilise l’applet Measure-Object de commande pour compter les objets envoyés au pipeline à partir de l’exemple de fonction par le return mot clé.

    function Test-Return
    {
        $array = 1, 2, 3
        return Write-Output -NoEnumerate $array
    }
    
    Test-Return | Measure-Object
    
    Count    : 1
    Average  :
    Sum      :
    Maximum  :
    Minimum  :
    Property :
    

Voir aussi