Ruby неопределенный метод `each'

Я не могу понять, что не так с моим кодом, не могли бы вы помочь мне, пожалуйста?

это конструктор моего класса:

def initialize(hash_table_size)
  @size = hash_table_size
  @table = Array.new(hash_table_size) { LinkedList.new }
end

это метод в этом классе:

def to_a
  arr = Array.new
  @table.each { |list| list.each { |o| arr << o } }
  arr
end

это мой метод "каждый" в классе LinkedList:

def each
  if @length > 0
    item = @head
    begin
      yield item.object
      item = item.next
    end until item.nil?
  end
end

и вот что я получаю от unittest:

1) Error:
test_initial_size_3(HashSetTest):
NoMethodError: undefined method `each' for 3:Fixnum
    C:/Users/Ajax/My Documents/Aptana Studio 3 Workspace/alg_du1_jan_svec/hash_set.rb:34:in `block in to_a'
    C:/Users/Ajax/My Documents/Aptana Studio 3 Workspace/alg_du1_jan_svec/hash_set.rb:34:in `each'
    C:/Users/Ajax/My Documents/Aptana Studio 3 Workspace/alg_du1_jan_svec/hash_set.rb:34:in `to_a'
    C:/Users/Ajax/My Documents/Aptana Studio 3 Workspace/alg_du1_jan_svec/hash_set_test.rb:14:in `test_initial_size_3'

1 tests, 3 assertions, 0 failures, 1 errors, 0 skips

1 ответ

Решение

Это означает, что LinkedList.new в методе initialize возвращается 3, который становится элементом @tableи подставляется в переменную блока list метода to_a,

Другие вопросы по тегам