Массив из пользовательского класса в ruby - PullRequest
0 голосов
/ 20 февраля 2011

У меня есть пользовательский класс,

class Result

end

и я хочу создать из него массив объектов, но я не могу понять, как это сделать? Поскольку results = Array.new создает новый массив, но я не могу найти, куда передать класс?

Ответы [ 4 ]

4 голосов
/ 20 февраля 2011

Предполагая, что я правильно понимаю вопрос, ответ таков: вы не понимаете. Ruby динамически типизирован, поэтому массив - это просто массив, и ему не нужно знать, что он будет содержать объекты класса Result. Вы можете поместить что угодно в массив.

1 голос
/ 20 февраля 2011

Вы ищете что-то подобное,

class Result
end

result = Array.new(5) { Result.new }
#=> [#<Result>, #<Result>, #<Result>, #<Result>, #<Result>]

Очевидно, что вы можете передать любой номер, который вы хотите.

0 голосов
/ 20 февраля 2011

Вы должны иметь возможность создавать столько объектов Result, сколько вам нужно, и добавлять их в массив.Массив может содержать объекты любого типа.

result1 = Result.new
result2 = Result.new
result3 = Result.new

results = Array.new

results << result1
results << result2
results << result3

В вашем массиве результатов теперь есть 3 объекта Result.

0 голосов
/ 20 февраля 2011

results = Array.new создает пустой массив (как было бы results = [], что более кратко).Чтобы создать массив, содержащий объекты результата, либо создайте пустой массив и добавьте в него элементы, либо используйте литерал массива, например [element1, element2, ...].

Например, results = [Result.new, Result.new, Result.new] создаст массив, содержащий три Result объекта..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...