You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中Foreach方法内return未按预期跳出函数的差异问题

两段代码运行结果差异的核心原因

本质是return语句的作用域不同,这是PowerShell中.Foreach()扩展方法和原生foreach关键字循环的典型区别:

  • 第一段代码调用的是集合的.Foreach()扩展方法:
    该方法接收的{}包裹的内容是独立的脚本块,脚本块内的return仅会终止当前次脚本块的执行,进入下一个分组的迭代,完全不会跳出外层的FirstNonRepeatingLetter静态方法。
    因此代码会遍历全部分组,打印所有计数为1的分组Key,遍历结束后才会执行方法末尾的return "~~~",最终返回值为~~~,和预期不符。
  • 第二段代码使用的是PowerShell原生foreach关键字循环:
    该循环属于方法内部的逻辑结构,不是独立脚本块,循环内的return会直接终止整个FirstNonRepeatingLetter方法的执行,将匹配到的第一个符合要求的Key直接返回,因此运行结果符合预期。

内容的提问来源于stack exchange,提问作者Алексей Семенов

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:27:05