2011-04-22 2 views
3

왜 평방 일에 첫 번째 통화를 수행 매개 변수지만, 두 번째는하지 않습니다파워 쉘 기능

function add ($arg1,$arg2){ 
    return $arg1 + $arg2 
} 

function square ($arg1){ 
    $arg1 * $arg1 
} 

Write-Host (square (add 1 2)) 

Write-Host (square (add (1, 2))) 
+0

난 그냥 쉼표 PowerShell에서 인수를 전달하는 데 사용하지 않는 것을 보았다. – Kyle

답변

4

난 당신이 문제를 볼 생각하지만, 나는 모두의 이익을위한 풀러 설명을 게시 할 예정입니다.

첫 번째 줄에서는 add의 내부 호출이 두 개의 매개 변수 (정수)를 전달합니다. 이 함수는 int을 반환하고 square 함수는이를 제곱합니다.

두 번째 줄에서는 두 개의 정수가 포함 된 배열 하나를 전달합니다. 결과적으로 add 함수는 하나의 배열을 아무 것도 추가하지 않고 배열을 반환합니다. 그런 다음 square 함수는 해당 배열을 가져 와서 자체적으로 곱하려고 시도합니다.

당신은 다음과 같습니다 오류가 발생한다 :

Cannot convert the "System.Object[]" value of type "System.Object[]" to type "System.Int32". 
At line:1 char:8 
+ (1,2) * <<<< (1,2) 
    + CategoryInfo   : NotSpecified: (:) [], RuntimeException 
관련 문제