创建一个新对象并将其保留在数组中

时间:2014-11-20 13:32:34

标签: ruby

我遇到需要创建对象并立即将其保存到数组中的情况。我有一个班级Book,在班级Library我有一个array BOOKS[]

例如,我创建了HarryPotter = Book.new("Harry Potter and F_stone", "‎JK Rowling"),然后按照书名(“哈利波特与F_stone”)将其保存到数组BOOKS[]中。

所以,我需要一种可以解决这个问题的方法。

1 个答案:

答案 0 :(得分:1)

class Book
  @@books = Array.new

  def initialize(title)
    @title = title
    @@books << self # Add the instance object into a static variable
  end

  def self.books
    puts @@books
  end
end

使用静态变量@@books

(main) > load './books.rb'
=> true
(main) > foo = Book.new("Foo")
=> #<Book:0x00000105583120 @title="Foo">
(main) > bar = Book.new("Bar")
=> #<Book:0x00000106079f20 @title="Bar">
(main) > Book.books
#<Book:0x00000105583120>
#<Book:0x00000106079f20>