ruby - 如何让自己的 def 类充当 ruby​​ 中的数组?

标签 ruby

class Heap
  attr_accessor :a, :heap_size
  def initialnize(a, heap_size)
    @a = a
    @heap_size = heap_size
  end
end
a = [16, 14, 10, 8, 7, 9, 3, 2, 4, 1]
a = Heap.new(a, a.length-1)

我该怎么办?然后我可以使用 a[i] 等访问 16。

最佳答案

您可以简单地使用继承:

class Heap < Array
  attr_accessor :heap_size
  def initialize(a, heap_size)
    @heap_size = heap_size
    super(a)
  end
end
a = [16, 14, 10, 8, 7, 9, 3, 2, 4, 1]
heap = Heap.new(a, a.length-1)
heap[0]
# => 16

关于ruby - 如何让自己的 def 类充当 ruby​​ 中的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30255000/

相关文章:

python - Ruby 类 Net :HTTP? 的 Python 等价物是什么

ruby-on-rails - 如何使用 Ruby 更改 MIME 类型

javascript - 如何在javascript中访问当前的rails对象id

ruby - RVM 没有安装/usr/local/rvm/bin/ruby 或/usr/local/rvm/bin/gem?

mysql - 什么是事务的默认 ActiveRecord 隔离级别

ruby-on-rails - 如何避免在 Ruby 中嵌入大量(20 到 30 条) "if"语句?

ruby - 无法理解 ruby​​ 如何打印此哈希

ruby-on-rails - 在 REST POST 中访问哈希

ruby-on-rails - Rake des 不知道如何构建任务 'compile' ,如何跟踪这个错误?

ruby-on-rails - 提交 ROE 后似乎无法保留表单数据