Я пробую свои силы в Ruby, ниже приведен код, который я пишу двумя различными способами, чтобы понять Ruby Classes.В первом блоке я использую метод доступа (комбинация чтения и записи) и хочу напечатать последнюю строку, так как «Властелин колец написан Толкином и имеет 400 страниц».Как я могу это сделать?Я понимаю, что добавление строки и целого числа приведет к ошибке.Я могу заставить их печатать на отдельных строках, просто я не могу получить их в предложении.
class Book
attr_accessor :title, :author, :pages
end
book1 = Book.new()
book1.title = 'lord of the rings'
book1.author = 'Tolkien'
book1.pages = 400
puts book1.title
puts book1.author
puts book1.pages
#puts book1.title + " is written by " + book1.author + " and has " + book1.pages + " pages" <<<this errors out for known reason>>>
Второй кусок кода делает то же самое, но я использую переменную экземпляра и выяснил, как получить желаемый результат.Однако, пожалуйста, посоветуйте, если есть лучший способ сделать это?
class Novel
def initialize(title, author, pages)
@title = title
@author = author
@pages = pages
end
def inspect
"#{@title} is written by #{@author} and has #{@pages} pages"
end
end
novel1 = Novel.new('harry potter', 'JK Rowling', 300)
puts novel1.inspect