PowerShell函数参数

时间:2011-04-22 15:00:17

标签: powershell parameter-passing

为什么第一次调用square工作,但第二次没有:

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

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

Write-Host (square (add 1 2 ))

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

1 个答案:

答案 0 :(得分:4)

我认为你看到了这个问题,但我会为所有人的利益发布一个更全面的描述。

在第一行中,对add的内部调用传递两个参数(整数)。该函数返回intsquare函数将其平方。

在第二行中,您传递一个包含两个整数的数组。这导致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