作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是从 this Stack Overflow question 学到的, PowerShell 返回语义与 C# 的返回语义不同。引自上述问题:
PowerShell has really wacky return semantics - at least when viewed from a more traditional programming perspective. There are two main ideas to wrap your head around: All output is captured, and returned. The return keyword really just indicates a logical exit point.
function Calculate
{
echo "Calculate"
return 11
}
$result = Calculate
$result
你会意识到有些事情不对劲。你会期望这个:
11
Calculate
11
function Calculate
{
# Every function that returns has to echo something
echo ""
return 11
}
# The return values is the last value from the returning array
$result = (Calculate)[-1]
最佳答案
已经给出的几个答案并没有完全回答你的问题,因为它们没有考虑到你可能调用的其他 cmdlet——正如你指出的那样——这可能会“污染”你的输出。 @Laezylion 的答案基本上是正确的,但我相信需要进一步阐述。
很明显,您意识到您当前的解决方法——强制每个函数返回一个数组然后获取最后一个元素——不是一个非常可靠的解决方案。 (事实上,我认为将其称为混杂是安全的。:-) 正确的方法 - 以及对您问题的直接回答 - 很清楚......尽管乍一看这听起来像是同义反复:
Question: How do you ensure a function returns only one thing?
Answer: By ensuring that it returns only one thing.
关于powershell - 如何从 PowerShell 函数返回一个且仅一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29556437/
我是一名优秀的程序员,十分优秀!