从Powershell中的ForEach中返回值

本·鲍尔(Ben Power)

这似乎很基础,但是我看不到它的行为方式或原因:

function ReturnStuff{
    $a=1,2,3,4,5
    $a.ForEach{
        return $_
    }
}

ReturnStuff

为什么会给我:1 2 3 4 5而不是1?

xXhRQ8sD2L7Z

看起来您正在使用一个脚本块参数调用ForEach(中的函数[System.Array])。本质上,您正在定义并返回{ Return $_ }循环的每个迭代。

这意味着ReturnStuff将每次捕获输出,并且由于此函数对该行的输出不执行任何操作,因此将返回所有输出:

$a.ForEach{ return $_ }

此行为类似于 $a | Foreach-Object { return $_ }

那么该怎么办?

  1. ForEach改为使用循环(不要与混淆Foreach-Object):

    ForEach ($item In $a) { return $item }
    
  2. 选择从所有脚本块返回的第一个值:

    $a.ForEach{ return $_ } | Select -First 1
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在PowerShell中的多行计算属性中明确返回值

来自分类Dev

抓住返回值并摆脱JavaScript中的forEach?

来自分类Dev

如何从dart中的map.forEach返回值?

来自分类Dev

如何在JavaScript中的forEach循环内返回值

来自分类Dev

如何从tcl中的foreach循环返回值

来自分类Dev

在Powershell功能中清除捕获的输出/返回值

来自分类Dev

在vb6中获取实际的Powershell返回值?

来自分类Dev

在Python中返回值

来自分类Dev

Prolog中的返回值

来自分类Dev

C ++中的返回值

来自分类Dev

Javascript forEach返回值插入到字符串中

来自分类Dev

在解析XML字符串时从字符串中的foreach循环返回值

来自分类Dev

从Cordova中的getCurrentPosition返回值

来自分类Dev

ruby中的require语句的返回值

来自分类Dev

如何从gwidgets中的函数返回值

来自分类Dev

从运行中获取函数的返回值

来自分类Dev

从C ++ 11中的线程返回值

来自分类Dev

在Lua表中返回值的索引

来自分类Dev

用Java中的Lambda返回值

来自分类Dev

如何从函数中的exec返回值?

来自分类Dev

Erlang中函数的返回值

来自分类Dev

了解C#中的返回值

来自分类Dev

在Go中记录多个返回值

来自分类Dev

在C ++中通过引用返回值

来自分类Dev

Lua中的多个返回值

来自分类Dev

从Ruby中的嵌套哈希返回值

来自分类Dev

从AJAX中的onreadystatechange事件返回值

来自分类Dev

在Java中捕获JavaScript返回值

来自分类Dev

从Python中的回调返回值