-1

クラスインスタンスで配列を返す方法は簡単ですか? 配列を返そうとしていますが、この変数は空の配列を返します。

例えば ​​:

class Library

    def initialize
        @@books = []
    end

    def all
        @@books
    end

    def add_book(arg = {})
        @book = Book.new(arg)
        @@books << @book
    end

end

class Book

    attr_accessor :name, :year, :author, :content

    def initialize( arg = {})
        @name = arg[:name]
        @year = arg[:year]
        @author = arg[:author]
        @content = arg[:content]
    end

end

@@books は Library クラス変数です。メソッド add_book を使用して本を @books に入れていますが、これらのインスタンスの配列を返すにはどうすればよいですか? 下手な英語でごめんなさい。

前もって感謝します !

4

2 に答える 2

1

メソッドを呼び出してnew新しいオブジェクトを作成すると、ruby がそのinitializeメソッドを実行します。initializeメソッドは空の配列に設定されるため@@books、もちろんLibrary.new.all空の配列が返されます。

于 2013-08-08T14:02:47.063 に答える