gpt4 book ai didi

ruby - 'each...do' 和 'do' 有什么区别

转载 作者:数据小太阳 更新时间:2023-10-29 07:29:41 25 4
gpt4 key购买 nike

只是在做一些练习题,但我很困惑“做”到底是做什么的

self.length.times do |i|

这段代码和

之间有什么区别
self.each do |i|

最佳答案

do ... end Ruby 中的代码块(或大部分等效的 { ... } block )是一种重要的语言功能,它允许您传递一些行为(即一些代码块)到一个方法。如果您了解 Javascript,您可以将 Ruby 的代码块想象成一个类似于匿名函数的一级近似值。

现在,当将 block 传递给 each 方法时,它将为枚举中的每个元素调用一次 block ,并将当前元素作为 block 的第一个参数传递。

Integer#times 方法也需要一个 block 。它将以一个数字作为参数调用 block n 次,从 0 计数到 n - 1(n 是您调用的任何数字times 方法打开。因此,该 block 将被恰好调用 n 次。

由于 block 是无处不在的 Ruby 不可或缺的一部分,因此您应该尝试深入了解它们的工作原理。如果您搜索“ruby blocks”,您会在 Google 上找到很多指南和帖子。

关于ruby - 'each...do' 和 'do' 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57304203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com