Function 函数的返回值

Function 函数的返回值,function,powershell,return-value,Function,Powershell,Return Value,我有两个职能: Function1 { Function2 return 1 } Function2 { return 0 } 执行Function1后,它应该返回1,但它返回0。为什么会这样?您确定它会继续运行,并且只返回0吗?它应该返回0(从函数2返回),然后返回1,然后退出。您确定它会继续运行,并且只返回0吗?它应该返回0(从函数2返回),然后返回1,然后退出。PowerShell“返回值”的工作方式与您在其他语言中使用的方式不同。需要记住的重要一点是,所有输出

我有两个职能:

Function1
{
    Function2
    return 1
}

Function2
{
    return 0
}

执行
Function1
后,它应该返回
1
,但它返回
0
。为什么会这样?

您确定它会继续运行,并且只返回0吗?它应该返回0(从函数2返回),然后返回1,然后退出。

您确定它会继续运行,并且只返回0吗?它应该返回0(从函数2返回),然后返回1,然后退出。

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

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返回什么?它返回什么?在执行函数1后,它应该返回值1,但它返回值0。您如何调用函数1以及如何检测其返回值?我真的不明白您在问什么。您希望函数1返回什么以及它返回什么?在执行函数1后,它应该返回值1,但它返回值0。您如何调用函数1以及如何检测其返回值?否,它返回0并继续运行。如果m没有错,则函数1从函数2得到返回0,则调用它将忽略返回1…这是否可能…我是否遗漏了某些内容…但当我将Function1中的Function2 cqll分配给变量时,Function1会正确退出…由于这种奇怪的行为…是否存在返回值或其他内容的优先级…否,它返回0并继续运行..如果在Function1从Function2获得返回0后m没有出错,则调用它会忽略返回1…这是可能的…我错过了什么…但是当我将Function1中的Function2 cqll分配给变量时,Function1正确退出…这是一种奇怪的行为…是否存在返回值或其他东西的优先级…谢谢!我也有同样的问题。所以你知道有什么方法可以真正返回你想要的东西,丢弃其他输出。输出很难以您的方式捕获,因为您不知道语句是否会返回任何值。实际的代码将指示执行该操作的最佳方式。如果你有一个例子发布,这将是有益的。谢谢!我也有同样的问题。所以你知道有什么方法可以真正返回你想要的东西,丢弃其他输出。输出很难以您的方式捕获,因为您不知道语句是否会返回任何值。实际的代码将指示执行该操作的最佳方式。如果你有一个例子,张贴,这将是有益的。