about_Return

Kısa açıklama

İşlev, betik veya betik bloğu olabilecek geçerli kapsamdan çıkar.

Uzun açıklama

return anahtar sözcüğü bir işlev, betik veya betik bloğundan çıkar. Belirli bir noktada bir kapsamdan çıkmak, bir değer döndürmek veya kapsamın sonuna ulaşıldığını belirtmek için kullanılabilir.

C veya C# gibi dilleri bilen kullanıcılar, bir kapsamı açık bırakma mantığını açık hale getirmek için anahtar sözcüğünü kullanmak return isteyebilir.

PowerShell'de her deyimin sonuçları, Return anahtar sözcüğünü içeren bir deyim olmadan bile çıkış olarak döndürülür. C veya C# gibi diller yalnızca anahtar sözcüğü tarafından return belirtilen değeri veya değerleri döndürür.

Not

PowerShell 5.0 sürümünden başlayarak, PowerShell biçimsel söz dizimi kullanarak sınıfları tanımlamak için dil ekledi. PowerShell sınıfı bağlamında, deyimini kullanarak return belirttiğiniz yöntem dışında hiçbir şey bir yöntemden çıkarılır. about_Classes PowerShell sınıfları hakkında daha fazla bilgi edinebilirsiniz.

Sözdizimi

Anahtar sözcüğün return söz dizimi aşağıdaki gibidir:

return [<expression>]

Anahtar return sözcük tek başına görünebilir veya ardından aşağıdaki gibi bir değer veya ifade gelebilir:

return
return $a
return (2 + $a)

Örnekler

Aşağıdaki örnek, bir koşullu karşılanırsa return belirli bir noktada işlevden çıkmak için anahtar sözcüğünü kullanır. Tek sayılar çarpılmaz çünkü dönüş deyimi, bu deyimin yürütülebilmesinden önce çıkar.

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

PowerShell'de anahtar sözcük kullanılmasa return bile değerler döndürülebilir. Her deyimin sonuçları döndürülür. Örneğin, aşağıdaki deyimler değişkeninin $a değerini döndürür:

$a
return

Aşağıdaki deyim değerini de döndürür $a:

return $a

Aşağıdaki örnek, kullanıcıya işlevin bir hesaplama gerçekleştirdiğini bildirmeye yönelik bir deyim içerir:

function calculation {
    param ($value)

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

$a = calculation 14

"Lütfen bekleyin. Hesaplama üzerinde çalış..." dizesi görüntülenmez. Bunun yerine, aşağıdaki örnekte olduğu gibi değişkenine $a atanır:

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

Hem bilgi dizesi hem de hesaplamanın sonucu işlev tarafından döndürülür ve değişkene $a atanır.

İşlevinizde PowerShell 5.0'dan başlayarak bir ileti görüntülemek isterseniz akışı kullanabilirsiniz Information . Aşağıdaki kod, devam ile cmdlet'ini Write-InformationInformationAction kullanarak yukarıdaki örneği düzeltmektedir.

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

Dönüş değerleri ve İşlem Hattı

Betik bloğunuzdan veya işlevinizden bir koleksiyon döndürdiğinizde PowerShell üyelerin kaydını otomatik olarak kaldırır ve bunları işlem hattı üzerinden birer birer geçirir. Bunun nedeni PowerShell'in bir kerede bir işlemesidir. Daha fazla bilgi için bkz . about_pipelines.

Bu kavram, bir sayı dizisi döndüren aşağıdaki örnek işlevle gösterilmiştir. İşlevden elde edilen çıkış, işlem hattındaki Measure-Object nesne sayısını sayan cmdlet'ine yöneltilir.

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

Bir betik bloğunu veya işlevi, koleksiyonu işlem hattına tek bir nesne olarak döndürmeye zorlamak için aşağıdaki iki yöntemden birini kullanın:

  • Birli dizi ifadesi

    Birli ifade kullanarak, aşağıdaki örnekte gösterildiği gibi dönüş değerinizi işlem hattına tek bir nesne olarak gönderebilirsiniz.

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

    Cmdlet'ini Write-Output NoEnumerate parametresiyle de kullanabilirsiniz. Aşağıdaki örnek, anahtar sözcüğüyle Measure-Object örnek işlevden işlem hattına gönderilen nesneleri saymak için cmdlet'ini return kullanır.

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

Ayrıca bkz.