不能将 `each` 的全部或大部分情况都替换为 `map` 吗?

2023-11-23

和...之间的不同Enumerable#each and Enumerable#map是它返回接收者还是映射结果。返回接收者是微不足道的,通常不需要在之后继续方法链each like each{...}.another_method(我可能没有见过这样的情况。即使你想回到接收者,你也可以这样做tap)。所以我认为所有或大多数情况下Enumerable#each使用可以替换为Enumerable#map。我错了吗?如果我是对的,那么目的是什么each? Is map慢于each?

Edit: 我知道有一个常见的做法可以使用each当你对返回值不感兴趣时​​。我对这种做法是否存在不感兴趣,但感兴趣的是这种做法除了从惯例的角度来看是否有意义。


和...之间的不同map and each比一个是否返回新数组而另一个不返回更重要。重要的区别在于他们如何传达您的意图。

当你使用each,你的代码说“我正在为每个元素做一些事情。”当你使用map,您的代码显示“我正在通过转换每个元素来创建一个新数组。”

所以虽然你可以使用map代替each尽管性能良好,但该代码现在可能会向任何阅读它的人谎报其意图。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不能将 `each` 的全部或大部分情况都替换为 `map` 吗? 的相关文章

随机推荐

  • 将张量值以二进制格式保存到文件的最佳方法是什么?

    我正在尝试将张量值以二进制格式保存到文件中 特别是我试图将 float32 张量值保存为二进制格式 IEEE 754 格式 请你帮助我好吗 import tensorflow as tf x tf constant 1 0 2 0 3 0
  • 无法浏览到我的 EC2 实例 [已关闭]

    Closed 这个问题是无关 目前不接受答案 我刚刚 大约 1 小时前 关联了一个弹性IP到我在亚马逊的实例EC2 如果我通过 SSH 连接到我的实例并输入lynx localhost我可以看到 apache 有响应 因为我看到It wor
  • 在 Android Activity 中创建弹出窗口时出现问题

    我正在尝试创建一个仅在应用程序第一次启动时出现的弹出窗口 我希望它显示一些文本并有一个按钮来关闭弹出窗口 但是 我在让 PopupWindow 正常工作时遇到了麻烦 我尝试了两种不同的方法 首先 我有一个 XML 文件 它声明了名为 pop
  • 具有虚拟目录的 ASP.net 母版页中的基本 URL

    我有一个 ASP net 母版页 在这个 master 中 我定义了所有 css 和 javascript 文件 我还有一些图像 一些按钮和超链接 所有的 url 都被声明为相对的 即 scripts ian js 如果该网站是根网站 则一
  • 抓住滑动即可消除事件

    我正在使用 Android 通知在服务完成 成功或失败 后提醒用户 并且我想在该过程完成后删除本地文件 我的问题是 如果发生失败 我想让用户有 重试 选项 如果他选择不重试并忽略通知 我想删除出于处理目的而保存的本地文件 图像 有没有办法捕
  • 无法添加对“Newtonsoft.Json”的引用

    我刚刚在 PC 上安装了 Windows 8 并下载了适用于 Windows 8 的 Microsoft Visual Studio Express 2012 更新了所有内容 当我尝试通过包管理器控制台安装任何内容时 出现以下错误 PM g
  • 在 Ruby 中获取人的年龄

    我想从一个人的生日得到他的年龄 now birthday 365不起作用 因为有些年份有 366 天 我想出了以下代码 now Date today year now year birth date year if date year ye
  • 在 shell 中更改 PYTHONPATH

    我是 Python 和 shell 脚本的全新用户 并且在这个问题上陷入了死胡同 即使在谷歌搜索这个问题并多次用头撞桌子之后也是如此 任何帮助表示赞赏 我在通过 SSH 连接的 shell 上运行 Python 2 7 3 我下载了一些代码
  • file_get_contents 不适用于本地文件

    我最近将 XAMPP 从 PHP 5 2 升级到 5 3 1 我似乎在使用 file get contents 时遇到问题 我可以使用该函数来获得类似 http www google com 但是当我在本地设置的域上使用它时 它会超时 例如
  • Facebook graph api JSONP 格式,第一行中的 /* */ 表示什么?

    我注意到 facebook graph api 返回的 JSONP 输出中有一个空注释块 所有方法 我调用的网址 https graph facebook com NUMERIC FACEBOOK ID friends access tok
  • SMTP 服务器响应:530 5.7.0 必须首先发出 STARTTLS 命令

    SMTP 服务器响应 530 5 7 0 必须首先发出 STARTTLS 命令 当我在 php 脚本文件中使用 mail 函数时 出现此错误消息 我正在使用 gmail SMTP 服务器 gmail 使用 STARTTLS 这是安全的 SS
  • 如何在没有过滤器的情况下从设备中检索所有 CNContactStore

    我正在尝试插入var contacts CNContact the var store CNContactStore 但我没有找到适合这项工作的正确代码 我找到了这个函数 我需要给它命名 func findContactsWithName
  • Git拉取、合并更改是工作树吗?

    我从 GitHub 克隆了一个存储库 并使用以下命令创建了一些工作树 git worktree add path branch 当我从以下位置提取更改时master 这些工作树也会更新吗 根据您用来 拉取更改 的命令 答案是 否 或 不完全
  • 从 msdb.dbo.sysjobhistory 获取最近 24 小时的作业记录

    我想编写一个查询来从 msdb dbo sysjobhistory 表中获取过去 24 小时的作业记录 但我无法获取 因为我得到的 run date 和 run time 列以数字形式返回 如何将 run date 和 run time 列
  • 从 Base64 编码的字符串中检索 MIME 类型

    假设有一个以 Base64 字符串编码并提供给我的文件 例如 myfile jpeg 我无法知道文件类型是什么 我想将字符串解码为文件 本例中为图像 我如何知道文件的类型 例如 jpeg 一般来说 base 64 编码的字符串绝对可以包含任
  • URL 更改时如何更新 AngularJS 指令? [复制]

    这个问题在这里已经有答案了 可能的重复 使用 AngularJS 设置活动选项卡样式 我正在使用 AngularJS 并尝试在显示该选项卡内容时将 当前 类添加到我的菜单中 这是我到目前为止所拥有的 加载页面时效果很好 HTML ul li
  • 获取与 Android 版 Facebook 同步的联系人照片

    我试图在我的应用程序中显示联系人图片 但我得到的是那些仅手动添加的照片 而不是那些与 Facebook 同步的照片 如何解决这个问题 下面是我的代码 Uri uri ContentUris withAppendedId ContactsCo
  • PHP var_dump 的 .NET 等效项是什么?

    我记得不久前看到 反射命名空间中可能有一些方法可以递归运行ToString 对象的所有属性并对其进行良好的格式化以供显示 是的 我知道我想要的一切都可以通过调试器访问 但我想知道是否有人知道该命令 我认为您正在寻找的是 曾经被称为Objec
  • 包含同一超类的不同对象的ArrayList - 如何访问子类的方法

    您好 我想知道是否有一个简单的解决方案可以解决我的问题 我有一个ArrayList ArrayList
  • 不能将 `each` 的全部或大部分情况都替换为 `map` 吗?

    和 之间的不同Enumerable each and Enumerable map是它返回接收者还是映射结果 返回接收者是微不足道的 通常不需要在之后继续方法链each like each another method 我可能没有见过这样的