class Library def initialize @books = [] end def <<(book) @books << book end def to_s puts "Library contents" @books.join("\n") end end class Book attr_accessor :tiltle, :author def initialize(arg) @title = arg[:title] @author = arg[:author] arg[:library] << self end def to_s "Title: " + @title + ", Author" + @author end end my_library = Library.new Book.new(:author => "Herman Melville", :title => "Moby-Dick", :library => my_library) Book.new(:author => "Hans Christian Andersen", :title => "The Ugly Duckling", :library => my_library) puts my_library #=>Library contents: #=>Title: Moby-Dick, Author: Herman Melville #=>Title: The Ugly Duckling, Author: Hans Christian Andersen
####コードが理解できません。
Bookクラスで作成したインスタンスをLibraryクラスの<<(class)メソッドで配列に格納していると思うのですが、この<<(book)メソッドの引数であるbookがどのような流れで引数に入っているのかがわかりません。
またBookクラスのinitializeの arg[:library] << self もどういう事なのか?この記述でどういう動きになっているのか、ざっくりとした質問で申し訳ありませんが解説をしていただきたいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/07 12:52
2019/05/07 13:05
2019/05/07 13:07
2019/05/08 02:02