about_Return

Deskripsi singkat

Keluar dari cakupan saat ini, yang dapat menjadi fungsi, skrip, atau blok skrip.

Deskripsi panjang

Kata return kunci keluar dari blok fungsi, skrip, atau skrip. Ini dapat digunakan untuk keluar dari cakupan pada titik tertentu, untuk mengembalikan nilai, atau untuk menunjukkan bahwa akhir cakupan telah tercapai.

Pengguna yang terbiasa dengan bahasa seperti C atau C# mungkin ingin menggunakan return kata kunci untuk membuat logika meninggalkan cakupan menjadi eksplisit.

Di PowerShell, hasil setiap pernyataan dikembalikan sebagai output, bahkan tanpa pernyataan yang berisi kata kunci Return. Bahasa seperti C atau C# hanya mengembalikan nilai atau nilai yang ditentukan oleh return kata kunci.

Catatan

Dimulai di PowerShell 5.0, PowerShell menambahkan bahasa untuk menentukan kelas, dengan menggunakan sintaks formal. Dalam konteks kelas PowerShell, tidak ada output dari metode kecuali apa yang Anda tentukan menggunakan return pernyataan. Anda dapat membaca selengkapnya tentang kelas PowerShell di about_Classes.

Sintaks

Sintaks untuk return kata kunci adalah sebagai berikut:

return [<expression>]

Kata return kunci dapat muncul sendiri, atau dapat diikuti oleh nilai atau ekspresi, sebagai berikut:

return
return $a
return (2 + $a)

Contoh

Contoh berikut menggunakan return kata kunci untuk keluar dari fungsi pada titik tertentu jika kondisi terpenuhi. Angka ganjil tidak dikalikan karena pernyataan pengembalian keluar sebelum pernyataan tersebut dapat dijalankan.

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

Di PowerShell, nilai dapat dikembalikan meskipun return kata kunci tidak digunakan. Hasil setiap pernyataan dikembalikan. Misalnya, pernyataan berikut mengembalikan nilai $a variabel:

$a
return

Pernyataan berikut juga mengembalikan nilai :$a

return $a

Contoh berikut mencakup pernyataan yang dimaksudkan untuk memberi tahu pengguna bahwa fungsi melakukan perhitungan:

function calculation {
    param ($value)

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

$a = calculation 14

"Silakan tunggu. Sedang mengerjakan penghitungan..." string tidak ditampilkan. Sebagai gantinya, ini ditetapkan ke $a variabel, seperti dalam contoh berikut:

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

String informasi dan hasil perhitungan dikembalikan oleh fungsi dan ditetapkan ke $a variabel .

Jika Anda ingin menampilkan pesan dalam fungsi Anda, dimulai di PowerShell 5.0, Anda dapat menggunakan Information aliran. Kode di bawah ini memperbaiki contoh di atas menggunakan Write-Information cmdlet dengan InformationAction dari Lanjutkan.

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

Mengembalikan nilai dan Alur

Saat Anda mengembalikan koleksi dari blok atau fungsi skrip Anda, PowerShell secara otomatis membuka pendaftaran anggota dan meneruskannya satu per satu melalui alur. Hal ini disebabkan oleh pemrosesan satu per satu PowerShell. Untuk informasi selengkapnya, lihat about_pipelines.

Konsep ini diilustrasikan oleh fungsi sampel berikut yang mengembalikan array angka. Output dari fungsi disalurkan ke Measure-Object cmdlet yang menghitung jumlah objek dalam alur.

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

Untuk memaksa blok skrip atau fungsi mengembalikan koleksi sebagai objek tunggal ke alur, gunakan salah satu dari dua metode berikut:

  • Ekspresi array unary

    Menggunakan ekspresi unary, Anda dapat mengirim nilai pengembalian Anda ke bawah alur sebagai objek tunggal seperti yang diilustrasikan oleh contoh berikut.

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

    Anda juga dapat menggunakan Write-Output cmdlet dengan parameter NoEnumerate . Contoh di bawah ini menggunakan Measure-Object cmdlet untuk menghitung objek yang dikirim ke alur dari fungsi sampel oleh return kata kunci.

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

Lihat juga