【发布时间】:2017-11-01 14:19:43
【问题描述】:
我正在自学如何编码,但似乎无法理解此类如何调用输入的标题。争论首先在哪里? attr_accessor 或 def 标题 capital_it(@title) 结束?
class Book
attr_accessor :title
def title
capital_it(@title)
end
def capital_it(title)
word_arr = @title.capitalize.split(" ")
word_arr.map do |word|
word.capitalize! unless little_words.include?(word)
end
word_arr.join(" ")
end
def little_words
["the", "a", "an", "and", "in", "of"]
end
end
【问题讨论】:
-
错误信息可以指导您。在您的
capital_it方法中,您的mapdo缺少end。 -
根据您的
initialize方法,当您使用Book.new创建一本新书时,您必须传递一个参数,即@book = Book.new('a title')。 -
我似乎不明白参数是如何通过类传递的,以及每个方法根据实例变量的设置方式提供什么功能。我得到了规范,但我必须在没有参数的情况下执行“def initializer”,并在正文中通过如下方法传递实例变量:capital_it(@title)。
-
可能值得学习某种教程,有很多概念需要理解。这个链接ruby-for-beginners.rubymonstas.org/writing_classes/…可能有助于同时理解
initialize。 -
非常感谢您的帮助 sagarpandya82!它终于通过了检查,我现在看到我不明白 attr_accessors 和初始化方法是如何工作的和/或参数是如何输入到代码中的