私には2つの機能があります:
Function1
{
Function2
return 1
}
Function2
{
return 0
}
実行後、Function1
を返すはず1
ですが、 を返します0
。何故ですか?
私には2つの機能があります:
Function1
{
Function2
return 1
}
Function2
{
return 0
}
実行後、Function1
を返すはず1
ですが、 を返します0
。何故ですか?
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
.
引き続き実行され、0 しか返されませんか? 0 を返し (関数 2 からの戻り)、1 を返し、終了する必要があります。