這裏忽略表達式是一個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