PowerShell 함수 매개 변수 데이터 형식 인스턴스 지정

1682 단어
본고는 PowerShell에서 사용자 정의 함수를 만들 때 필수 매개 변수의 강한 유형을 설정하는 것이 어떤 장점이 있는지, 어떻게 설정해야 하는지를 소개한다.
필수 매개 변수의 안전성을 높이기 위해 PowerShell 함수 정의의 가장 좋은 실천은 필수 매개 변수의 강력한 유형을 설정해야 한다는 것을 알려 줍니다.왜 그런지, 예를 하나 보자.
 
  
function Test-Me {
    param
    (
        [Parameter(Mandatory=$true, HelpMessage='Enter number of EUROs!')]
        $Euro
    )
    $Dollar = $Euro * 1.4
    $Dollar
}

위의 예는 사용자가 유로화 값을 입력한 다음에 달러 값을 출력하는 것이다.두 화폐 사이에 환산을 한 셈이다.실제 실행 효과는 놀랍습니다. 참고:
 
  
PS> Test-Me -Euro 100
140
PS> Test-Me
cmdlet Test-Me at command pipeline position 1
Supply values for the following parameters:
(Type !? for Help.)
Euro: 100
100

여기서 두 번 테스트했는데 첫 번째 테스트는 문제가 없습니다. 100*1.4=140.그런데 두 번째 테스트에서 알이 아픈데 어떻게 100*1.4가 100이야?사실은 이렇다. 입력한 100은 숫자가 아니라 문자열로 여겨진다.그래서 한 문자열에 1.4를 곱하면 이 문자열을 1.4번 반복하고 반올림하는 것과 같다. 그것은 1번을 반복하는 것이다. 그것은 그대로 있는 것이다. 그래서 너는 이 100이 어떻게 왔는지 알지?
자, 이것이 바로 우리가 말한 안전성입니다.필수 매개 변수에 강한 종류를 설정하지 않으면 안전하지 않습니다!Double 유형으로 설정합니다.
 
  
function Test-Me {
    param
    (
        [Parameter(Mandatory=$true, HelpMessage='Enter number of EUROs!')]
        [Double]
        $Euro
    )
    $Dollar = $Euro * 1.4
    $Dollar
}

여러분은 이 코드가 이전의 문제가 발생하지 않았는지 시험해 보셔도 됩니다.여기에 [double] 지령이 추가되어 강제 데이터 형식의 역할을 했다.
PowerShell 함수에 대한 필수 매개 변수의 강력한 유형을 설정하는 데 관해서 본고에서 이렇게 많은 것을 소개했습니다. 도움이 되었으면 합니다. 감사합니다.

좋은 웹페이지 즐겨찾기