为什么第一次调用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)))
答案 0 :(得分: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