about_Return

Rövid leírás

Kilép az aktuális hatókörből, amely lehet függvény, szkript vagy szkriptblokk.

Hosszú leírás

A return kulcsszó kilép egy függvényből, szkriptből vagy szkriptblokkból. Használható egy adott ponton lévő hatókörből való kilépésre, egy érték visszaadására, vagy a hatókör végének jelzésére.

Azok a felhasználók, akik ismerik az olyan nyelveket, mint a C vagy a C#, érdemes lehet a return kulcsszót használni a hatókör elhagyásának logikájának explicitvé ására.

A PowerShellben az egyes utasítások eredményei kimenetként lesznek visszaadva, még a Return kulcsszót tartalmazó utasítás nélkül is. Az olyan nyelvek, mint a C vagy a C# csak a kulcsszó által return megadott értéket vagy értékeket adja vissza.

Feljegyzés

A PowerShell 5.0-tól kezdődően a PowerShell formális szintaxissal hozzáadott nyelvet adott hozzá az osztályok meghatározásához. Egy PowerShell-osztály kontextusában semmi sem kimenet egy metódusból, kivéve azt, amit egy return utasítással ad meg. A PowerShell-osztályokról a about_Classes olvashat bővebben.

Syntax

A kulcsszó szintaxisa a return következő:

return [<expression>]

A return kulcsszó önállóan is megjeleníthető, vagy egy érték vagy kifejezés követhető az alábbiak szerint:

return
return $a
return (2 + $a)

Példák

Az alábbi példa a return kulcsszó használatával lép ki egy függvényből egy adott ponton, ha teljesül egy feltételes feltétel. A páratlan számok nem szorozódnak meg, mert a visszatérési utasítás az utasítás végrehajtása előtt kilép.

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

A PowerShellben az értékek akkor is visszaadhatók, ha a return kulcsszó nincs használatban. Az egyes utasítások eredményei lesznek visszaadva. A következő utasítások például a változó értékét $a adja vissza:

$a
return

Az alábbi utasítás a következő értéket is visszaadja $a:

return $a

Az alábbi példa egy utasítást tartalmaz, amely tudatja a felhasználóval, hogy a függvény számítást végez:

function calculation {
    param ($value)

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

$a = calculation 14

A "Kérjük, várjon. Számításon dolgozik..." a sztring nem jelenik meg. Ehelyett a $a változóhoz van rendelve, ahogy az alábbi példában is látható:

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

A függvény az információs sztringet és a számítás eredményét is visszaadja, és hozzárendeli a $a változóhoz.

Ha egy üzenetet szeretne megjeleníteni a függvényben, a PowerShell 5.0-tól kezdve használhatja a Information streamet. Az alábbi kód a fenti példát a Folytatás parancsmaggal Write-InformationInformationAction korrigálja.

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

Értékek és a folyamat visszaadása

Amikor egy gyűjteményt ad vissza a szkriptblokkból vagy a függvényből, a PowerShell automatikusan megszünteti a tagok regisztrációját, és egyenként átadja őket a folyamaton keresztül. Ez a PowerShell egyszeri feldolgozásának köszönhető. További információ: about_pipelines.

Ezt a fogalmat az alábbi mintafüggvény szemlélteti, amely számtömböt ad vissza. A függvény kimenete a parancsmagra Measure-Object van állítva, amely megszámolja a folyamat objektumainak számát.

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

Ha azt szeretné, hogy egy szkriptblokk vagy függvény egyetlen objektumként adja vissza a gyűjteményt a folyamathoz, használja az alábbi két módszer egyikét:

  • Unary tömbkifejezés

    Ha egy unary kifejezést használ, a visszatérési értéket egyetlen objektumként küldheti el a folyamatba, ahogy az alábbi példában is látható.

    function Test-Return
    {
        $array = 1,2,3
        return (, $array)
    }
    Test-Return | Measure-Object
    
    Count    : 1
    Average  :
    Sum      :
    Maximum  :
    Minimum  :
    Property :
    
  • Write-OutputNoEnumerate paraméterrel.

    A parancsmagot a Write-OutputNoEnumerate paraméterrel is használhatja . Az alábbi példa a Measure-Object parancsmaggal számolja meg a kulcsszó által return a mintafüggvényből a folyamatnak küldött objektumokat.

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

Lásd még