about_Return

간단한 설명

함수, 스크립트 또는 스크립트 블록일 수 있는 현재 범위를 종료합니다.

자세한 설명

return 키워드(keyword) 함수, 스크립트 또는 스크립트 블록을 종료합니다. 특정 지점에서 범위를 종료하거나, 값을 반환하거나, 범위의 끝에 도달했음을 나타내는 데 사용할 수 있습니다.

C 또는 C#과 같은 언어에 익숙한 사용자는 키워드(keyword) 사용하여 return 범위를 명시적으로 벗어나는 논리를 만들 수 있습니다.

PowerShell에서 각 문의 결과는 Return 키워드(keyword) 포함하는 문 없이도 출력으로 반환됩니다. C 또는 C#와 같은 언어는 키워드(keyword) 지정된 return 값 또는 값만 반환합니다.

참고 항목

PowerShell 5.0부터 PowerShell은 공식 구문을 사용하여 클래스를 정의하는 언어를 추가했습니다. PowerShell 클래스의 컨텍스트에서 문을 사용하여 지정하는 것을 제외하고는 메서드의 출력이 return 없습니다. about_Classes PowerShell 클래스에 대해 자세히 확인할 수 있습니다.

구문

키워드(keyword) 구문 return 은 다음과 같습니다.

return [<expression>]

return 키워드(keyword) 단독으로 표시되거나 다음과 같이 값이나 식이 뒤따를 수 있습니다.

return
return $a
return (2 + $a)

예제

다음 예제에서는 조건부가 return 충족되는 경우 키워드(keyword) 사용하여 특정 지점에서 함수를 종료합니다. 해당 문을 실행하기 전에 return 문이 종료되므로 홀수는 곱하지 않습니다.

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에서는 키워드(keyword) 사용되지 않더라도 return 값을 반환할 수 있습니다. 각 문의 결과가 반환됩니다. 예를 들어 다음 문은 변수 값을 $a 반환합니다.

$a
return

다음 문은 다음 값 $a도 반환합니다.

return $a

다음 예제에는 함수가 계산을 수행하고 있음을 사용자에게 알리기 위한 문이 포함되어 있습니다.

function calculation {
    param ($value)

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

$a = calculation 14

"기다려 주세요. 계산 작업 중..." 문자열이 표시되지 않습니다. 대신 다음 예제와 같이 변수에 $a 할당됩니다.

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

정보 문자열과 계산 결과는 모두 함수에서 반환되고 변수에 $a 할당됩니다.

PowerShell 5.0부터 함수 내에 메시지를 표시하려면 스트림을 Information 사용할 수 있습니다. 아래 코드는 Continue와 함께 cmdlet을 Write-Information 사용하여 위의 예제를 InformationAction수정합니다.

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

반환 값 및 파이프라인

스크립트 블록 또는 함수에서 컬렉션을 반환하면 PowerShell에서 자동으로 멤버의 등록을 취소하고 파이프라인을 통해 한 번에 하나씩 전달합니다. 이는 PowerShell의 일회성 처리 때문입니다. 자세한 내용은 about_pipelines 참조하세요.

이 개념은 숫자 배열을 반환하는 다음 샘플 함수에 의해 설명됩니다. 함수의 출력은 파이프라인의 Measure-Object 개체 수를 계산하는 cmdlet으로 파이프됩니다.

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

스크립트 블록 또는 함수가 컬렉션을 파이프라인에 단일 개체로 반환하도록 하려면 다음 두 가지 방법 중 하나를 사용합니다.

  • 단항 배열 식

    단항 식을 사용하면 다음 예제와 같이 반환 값을 파이프라인 아래로 단일 개체로 보낼 수 있습니다.

    function Test-Return
    {
        $array = 1,2,3
        return (, $array)
    }
    Test-Return | Measure-Object
    
    Count    : 1
    Average  :
    Sum      :
    Maximum  :
    Minimum  :
    Property :
    
  • Write-OutputNoEnumerate 매개 변수를 사용하여

    NoEnumerate 매개 변수와 함께 cmdlet을 사용할 Write-Output 수도 있습니다. 아래 예제에서는 cmdlet을 Measure-Object 사용하여 키워드(keyword) 샘플 함수에서 파이프라인으로 전송된 개체 수를 return 계산합니다.

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

참고 항목