ruby 这是Array类的自定义“flatten”方法,仅用于测试。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 这是Array类的自定义“flatten”方法,仅用于测试。相关的知识,希望对你有一定的参考价值。

class Array
  def press
    each_with_object([]) do |elem, flat|
      flat.push(*(elem.respond_to?(:each_with_object) ? elem.press : elem))
    end
  end
end

### Specs

require 'spec_helper'

RSpec.describe Array do
  context '.press' do
    it 'flattens a nested array of integers' do
      nested = [[1, 2, [3]], 4]
      expect(nested.press).to eq([1, 2, 3, 4])
    end

    it 'flattens a nested array of arbitrary things' do
      object = Object.new
      nested = [[1, 2, [object]], '4']
      expect(nested.press).to eq([1, 2, object, '4'])
    end
  end
end

以上是关于ruby 这是Array类的自定义“flatten”方法,仅用于测试。的主要内容,如果未能解决你的问题,请参考以下文章

ruby array_flatten.rb

ruby open类的自定义rails日志:ActiveSupport :: Logger :: SimpleFormatter

Ruby数组与哈希测试中的堆栈级别太深

Ruby - 解密使用:[重复]

Flatten Array:保持索引,值等于数组中的位置

这是对 flatten 的正确使用吗?