我遇到需要创建对象并立即将其保存到数组中的情况。我有一个班级Book
,在班级Library
我有一个array BOOKS[]
例如,我创建了HarryPotter = Book.new("Harry Potter and F_stone", "JK Rowling")
,然后按照书名(“哈利波特与F_stone”)将其保存到数组BOOKS[]
中。
所以,我需要一种可以解决这个问题的方法。
答案 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>