ruby - “每个...做”和“做”有什么区别
问题描述
只是在做一些练习题,但我很困惑“做什么”到底是做什么的
self.length.times do |i|
这段代码和
self.each do |i|
解决方案
do ... end
Ruby 中的代码块(或大部分等效{ ... }
块)是一个重要的语言特性,它允许您将某些行为(即某些代码块)传递给方法。如果您了解 Javascript,您可以将 Ruby 的块有点像一个匿名函数,作为第一个近似值。
现在,当将块传递给each
方法时,它将为枚举中的每个元素调用一次块,将当前元素作为块的第一个参数传递。
该Integer#times
方法也需要一个块。它将n
使用数字作为参数调用块时间,从 0 计数直到n - 1
(使用n
您调用该方法的任何数字times
。因此,块将被准确地调用n
次数。
由于块是无处不在的 Ruby 的一个组成部分,因此您应该尝试很好地了解它们的工作原理。如果您搜索“红宝石块”,您会在 Google 上找到很多指南和帖子。
推荐阅读
- dynamics-crm - 如何调用自定义工作流活动(c# 代码)以启动休息调用按钮单击 IN Dynamics 365
- autodesk-forge - 工具栏上的按钮是如何激活的?
- python - 无法在 MacOS Big Sur 中从 OpenGL 导入 EGL
- c# - 找不到页面 - 剃须刀页面项目中的 .razor,Net 5.0
- python - 如何将过去 1 年和 6 个月的数据从 .txt 提取到两个由 '\t' 分隔的单独 .txt 文件中?
- python - 如何修复“@pytest.mark.parametrize,预期元组中的 PT006 错误名称类型”?
- sql - Snowflake 我们如何在字段数组上运行非透视查询而不是显式声明每个字段?
- asp.net-core - 我需要从 web.Config appSettings 访问值
- javascript - 在 useEffect 中更改数组值
- angular - 令牌到期后的角度登录