ruby - Enumerable 的每个 block 中是否有特殊变量表示数组本身?

标签 ruby

我有这样的代码:

array = [100, 90, 120, 100, 110]
array.each_with_index.map do |v, i|
    next if i == array.size - 1
    array[i+1] - v
end

我觉得如果我能这样写会更好:

array = [100, 90, 120, 100, 110]
array.each_with_index.map do |v, i|
    next if i == _.size - 1
    _[i+1] - v
end

所以我想知道在 Enumerator block 中是否有一个表示数组本身的特殊变量。

有人知道吗?

最佳答案

我认为您正在寻找的是使用 each_cons ,它为每个连续元素数组迭代给定 block :

 array.each_cons(2).map { |a, b| a - b }
 # => [10, -30, 20, -10]

关于ruby - Enumerable 的每个 block 中是否有特殊变量表示数组本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27018535/

相关文章:

ruby-on-rails - 如果 ActiveRecord::Base#create 在 3.2.13 中已弃用,我该如何使用它?

java - ruby 线程编程,ruby 相当于 java wait/notify/notifyAll

sql - 为什么我的用户表没有列错误?

ruby-on-rails - React-Rails API 轮询

在 Heroku 上安装 Ruby 应用程序 : rake aborted. KeyError: key not found

php - 在同一台服务器上运行 PHP 和 Ruby 有什么坏处吗?

ruby - 没有要加载的文件——sensu-handler

ruby - 从 ruby​​ 文件中删除文本行

ruby - 检查字符串是否有平衡括号

ruby-on-rails - 获取运行时错误 : "In order to use #url_for, you must include routing helpers explicitly" when I've already included them