目前正在通过 rspec 教程苦苦挣扎,非常感谢您的澄清。
代码是:
class Book
attr_reader :title
def initialize(title=nil)
@title = title = title && title.capitalize!
end
def title=(new_title = nil)
@title = new_title && new_title.each do |word|
word.capitalize!
end
end
两个问题:
为什么有两组
@title
(即:为什么它在两者中都被定义initialize
为title
被设置=不同的东西)?为什么该
title
方法=
后面有一个?如果我不使用=
.
编辑:出于我的 rspec 教程的目的,这是我最终尝试的有效代码
class Book
attr_accessor :title
def initialize(title = nil)
@title = title
end
def title=(book_title = nil)
@title = book_title.capitalize
end
end
我最初的问题是 title= 方法。最后,我遇到了一个解释什么是 method= function 的线程。如果您想为类方法中的某些内容分配值,这是必要的(至少这是我目前的理解。请随时纠正我)。
我也将不胜感激此新代码中的任何提示。