这里忽略表达式是一个PowerShell脚本:PowerShell是后函数调用
function PickANumber()
{
12
}
function GetTheAnswer()
{
PickANumber + 30
}
$answer = GetTheAnswer
write-output "The answer is $answer"
这个脚本的输出是:
The answer is 12
至于我所说的猜测,出现这种情况是因为PowerShell的函数调用在它们之间的参数或逗号周围没有括号,所以PickANumber + 30
被解析为PickANumber('+', 1)
而不是PickANumber() + 1
。这不是一个错误,未使用的参数会被忽略(就像JavaScript一样)。
如果你改变它咯,那么答案是42:
function GetTheAnswer()
{
$a = PickANumber
$a + 30
}
但肯定有一行这样的方式?
我在这里发布,因为这将咬别人。
太好了,这会导致不正确的代码给出错误。现在结合其他答案“(PickANumber)+ 30”来修复给出的错误。 – Anthony 2013-05-12 22:27:57