前提
Rubyの[ミニツク]の演習問題1に取り組んでいます。(http://www.minituku.net/courses/500228005/contents/279986724.html)
回答で下記classの記述があります。
コード
Ruby
1class Library 2 def initialize 3 @books = [] 4 end 5 6 def <<(book) 7 @books << book 8 end 9 10 def to_s 11 puts "Library contents:" 12 @books.join("\n") 13 end 14end 15 16class Book 17 attr_accessor :author, :title 18 def initialize(args) 19 @author = args[:author] 20 @title = args[:title] 21 args[:library] << self 22 end 23 24 def to_s 25 "Title: " + @title + ", Author: " + @author 26 end 27end 28 29my_library = Library.new 30Book.new(:author => "Herman Melville", :title => "Moby-Dick", :library => my_library) 31Book.new(:author => "Hans Christian Andersen", :title => "The Ugly Duckling", :library => my_library) 32puts my_library 33
出力結果
ruby
1Library contents: 2Title: Moby-Dick, Author: Herman Melville 3Title: The Ugly Duckling, Author: Hans Christian Andersen
質問
- def <<()について
このメソッドはどのような処理を行うのでしょうか?
def <<(book) @books << book end
- def to_sについて
def to_sを実行させるコード記載がありませんが、どのようにして実行処理されるのでしょうか?
def to_s puts "Library contents:" @books.join("\n") end
よろしくお願いします。
過去に同様の質問があり解決しました。
回答2件
あなたの回答
tips
プレビュー