我有两个功能:
Function1
{
Function2
return 1
}
Function2
{
return 0
}
执行Function1
后,它应返回1
,但会返回0
。那是为什么?
答案 0 :(得分:10)
PowerShell“返回值”并不像您习惯使用其他语言那样真正起作用。要记住的重要一点是捕获并返回所有输出。 return
语句基本上只是一个逻辑退出点。
例如:
Function Return-Zero {
return 0
}
Function Return-One {
Return-Zero
return 1
}
Return-One
由于Return-Zero
的返回值未存储在变量中,因此它是输出的一部分。运行以上将输出:
0
1
......这可能是你得到的。如果将Return-Zero
的返回值存储在变量中,则它不是输出的一部分。
Function Return-Zero {
return 0
}
Function Return-One {
$var = Return-Zero
return $var
}
Return-One
以上输出为0
。
答案 1 :(得分:0)
你确定它继续运行,它只返回0吗?它应该返回0(从函数2返回),然后返回1,然后退出。