以下代码通过了rspec测试:
class Book
attr_reader :title
def initialize(title=nil)
@title = title && title.capitalize!
end
def title=(new_title)
@title = new_title && new_title.capitalize!
end
end
我不明白为什么,或者根本就没有这个代码......
答案 0 :(得分:0)
def title=(new title)
定义了一个名为title =的方法,它将实例变量设置为参数'new_title'
此代码:
@title = new_title && new_title.capitalize!
如果new_title为nil,则不会调用大写函数。 因此,它处理的情况是,nil作为参数传递,而不会通过尝试调用大写来引发异常。
感叹号表示大写方法修改了new_title变量。