1

私には2つの機能があります:

Function1
{
    Function2
    return 1
}

Function2
{
    return 0
}

実行後、Function1を返すはず1ですが、 を返します0。何故ですか?

4

2 に答える 2

11

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.

于 2013-04-11T18:34:49.313 に答える
0

引き続き実行され、0 しか返されませんか? 0 を返し (関数 2 からの戻り)、1 を返し、終了する必要があります。

于 2013-04-11T18:26:13.273 に答える